Подтвердить что ты не робот

Параметры кэширования URL-адресов с помощью RequireJS?

Я использую 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, добавленных к любому из скриптов.

Я что-то делаю неправильно?

4b9b3361

Ответ 1

Документы по urlArgs:

"Во время разработки может быть полезно использовать это, однако обязательно удалите его перед развертыванием вашего кода "

и эта проблема от Github, Джеймс Берк: "не пытайтесь использовать urlArgs во время сборки"

Ответ 2

Параметр 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.

Ответ 3

Я бы попробовал использовать другой файл build.js для оптимизатора и файл build.js, который вы используете для запуска Live-приложения. На основе вашего описания оптимизатор script, похоже, не обрабатывает параметр urlArgs (поскольку он выводит файл с именем require-jquery.js? Cache = v2).

Я бы не ожидал, что cache = v2 появится в index.html(почему бы это?), но вы правы, чтобы ожидать его в журнале сетевой активности.