Параметры очистки кэша URL с помощью RequireJS? - PullRequest
12 голосов
/ 08 марта 2012

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

Я что-то не так делаю?

Ответы [ 3 ]

1 голос
/ 16 января 2013

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

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

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

1 голос
/ 08 февраля 2013

Параметр urlArgs больше относится к конфигурации времени выполнения (т. Е. Понимается только RequireJS, а не оптимизатором r.js), по-видимому, из-за убеждения его автора , что он подходит только для разработки "плохие" серверы разработчиков, которые не отправляют правильные заголовки). Поэтому вам нужно будет либо настроить его в вызове require.config (в файле .js, загруженном require.js, обычно main.js или config.js):

require.config({
    // other config, like paths and shim

    urlArgs: "cache=v2"
});

Или, согласно этому другому SO ответу , вы должны определить его непосредственно в блоке <script> перед загрузкой require.js.

0 голосов
/ 30 июня 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...