переписывание URL для перенаправления на правильную версию файла JavaScript - PullRequest
0 голосов
/ 21 февраля 2010

Я недавно читал на Meta о том, что некоторые браузеры не очищают свой кеш даже после прочтения URL скрипта этой формы

myscript.js? V = 1234

поэтому, чтобы обойти проблему, я думаю о реализации решения, которое я также прочитал, но без каких-либо подробностей. что-то вроде myscript-1234.js и перенаправить на правильный файл, но сейчас у меня есть сомнения. Должен ли я переписать этот URL-адрес на myscript.js или myscript.js? V = 1234 ? Я на самом деле запутался в том, как будет иметь смысл переписать текст.

1 Ответ

1 голос
/ 21 февраля 2010

Ваше переписывание не должно перенаправлять на любой другой URL (который будет выбран браузером) , но должно быть "внутренним" на вашем сервере.

Я имею в виду, что при получении запроса "myscript-1234.js" ваш сервер должен вместо этого обслуживать содержимое файла myscript.js; которая всегда будет последней версией.

В конце концов:

  • Для клиента каждый раз, когда вы обновляете файл на сервере, это новый URL: myscript-1234.js, myscript-1235.js, myscript-1236.js, ...
    • Именно поэтому браузер будет пытаться повторно извлечь файл с сервера: поскольку он не совпадает с именем, он не будет иметь файл в кеше
  • Но для сервера всегда есть один и только один файл: myscript.js
  • И вы используете какое-то правило «перезаписи», чтобы сервер просто удалял часть -XYZ имени файла перед тем, как пытаться прочитать его с диска.
...