2012-02-13 3 views
19

Использование require.js Я заметил, что часто зависимости кэшируются браузером и не обновляются, даже если я принудительно перезаряжаю страницу (команда + shift + R).Отладка при использовании cache.js

Для того, чтобы всегда иметь обновленный файл, я сделал require.js, запрашивая файлы, добавляющие «? Datestamp» после URL. Единственная проблема с этим подходом заключается в том, что точки останова не остаются в хроме или firebug после перезагрузки, что делает отладку болезненной.

Есть ли у вас какие-либо предложения?

+0

У вас есть доступ к конфигурации вашего веб-сервера или сервера приложений или вы понимаете свой веб-сервер '.htaccess'? – fyr

+0

Я мог запускать Apache на локальном компьютере при отладке – Ghigo

ответ

16

На самом деле есть некоторые вещи, которые вы можете сделать:

Либо отключить ваш кэш браузера, чтобы полностью протестировать его. Простой способ, например, Chrome должен открыть Окно Incognito (CTRL + SHIFT + N), аналогичное Частный просмотр режим в Firefox. Однако более идеальное решение для вас должно быть перечислено здесь: Disabling Chrome cache for website development

Или вы поручаете вашему веб-серверу отправлять заголовки кеша для javascript или некоторых файлов javascript. Одна из возможностей - использовать mod_expires с apache.

+0

Режим Incognito мог работать для простых проектов, но не для всех. Отключение кэша или редактирование .htaccess на самом деле является лучшим решением. Спасибо. – Ghigo

3

Я думаю, что вы можете использовать urlArgs на required.config

цитаты из http://requirejs.org/docs/api.html#packages urlArgs: строковые аргументы Extra запроса присоединенных к URL-адресам, которые RequireJS использует для извлечения ресурсов. Наиболее полезно кэшировать спад, если браузер или сервер настроены неправильно. Пример настройки кэша бюст Урла

+3

Как я писал в вопросе, это решение сделает отладку болезненной. – Ghigo

9

Я использовал

require.config({ urlArgs: "v=" + (new Date()).getTime() }); 

Это решило мою проблему, но вы должны помнить, чтобы удалить его, перед вами Гото производства.

+0

Удивительный! Может быть 'app.myDevModeVariable && require.config ({urlArgs:" v = "+ (новая дата()). GetTime()});' – zsitro

 Смежные вопросы

  • Нет связанных вопросов^_^