Ответ 1
Документы по urlArgs:
"Во время разработки может быть полезно использовать это, однако обязательно удалите его перед развертыванием вашего кода "
и эта проблема от Github, Джеймс Берк: "не пытайтесь использовать urlArgs во время сборки"
Я использую RequireJS (версию jQuery), и я хочу добавить параметры GET в свои скрипты, чтобы предотвратить нежелательное кэширование.
Я использую параметр urlArgs, как это предлагается в документах. Это мой файл app-build.js
:
({
appDir: "../",
baseUrl: "scripts/",
urlArgs: "cache=v2",
...
Затем я создаю проект следующим образом:
$ node ../../r.js -o app.build.js
Вывод в каталоге app-build теперь содержит require-jquery.js
, который является тем же файлом, что и ранее, и require-jquery.js?cache=v2
, который пуст.
В файле index.html
нет ссылок на cache=v2
. И когда я загружаю страницу в браузере, я не вижу никаких параметров cache=v2
, добавленных к любому из скриптов.
Я что-то делаю неправильно?
Документы по urlArgs:
"Во время разработки может быть полезно использовать это, однако обязательно удалите его перед развертыванием вашего кода "
и эта проблема от Github, Джеймс Берк: "не пытайтесь использовать urlArgs во время сборки"
Параметр urlArgs является скорее конфигурацией времени выполнения (то есть понимается только RequireJS, а не оптимизатором r.js), по-видимому, из-за его автора полагают, что он подходит только для разработчиков (и "плохих" dev-серверов, которые не отправляют соответствующие заголовки). Поэтому вам нужно либо настроить его в вызове require.config(в файле .js, загруженном require.js, обычно main.js или config.js):
require.config({
// other config, like paths and shim
urlArgs: "cache=v2"
});
Или, для этого другого SO answer, вы должны определить его непосредственно в блоке <script>
перед загрузкой require.js.
Я бы попробовал использовать другой файл build.js для оптимизатора и файл build.js, который вы используете для запуска Live-приложения. На основе вашего описания оптимизатор script, похоже, не обрабатывает параметр urlArgs (поскольку он выводит файл с именем require-jquery.js? Cache = v2).
Я бы не ожидал, что cache = v2 появится в index.html(почему бы это?), но вы правы, чтобы ожидать его в журнале сетевой активности.