Правило перезаписи IIS для добавления строки запроса к ссылкам .css и .js на страницах ASP.net? - PullRequest
0 голосов
/ 06 марта 2012

Можно ли добавить строку запроса к ссылкам на файлы CSS и JS (например, "foo.css" => "foo.css? V =", "goo.js" => "goo.js? V = "где, скажем," 1.2.3 ") как часть входящего правила? Если да, то как?

Мы должны быть в состоянии заставить клиентов запрашивать последние версии файлов CSS и JS после выпуска. Правило переписывания кажется хорошим местом для этого, но я не делаю никакой документации или сообщений на форумах об этом.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 09 января 2013

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

0 голосов
/ 09 декабря 2015

Я делаю это с помощью следующего правила перезаписи для IIS. Все, что вам нужно сделать, это изменить номер версии при обновлении. Если у вас есть какая-либо автоматизация сборки, вы можете ее там автоматизировать.

<rewrite>

  <rules>
    <rule name="JS versioning" stopProcessing="true">
      <match url="(.*).js" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" />
        <add input="{QUERY_STRING}" pattern="version=3911" negate="true" />
      </conditions>
      <action type="Redirect" url="{R:1}.js?version=3911" redirectType="Permanent" />
    </rule>
  </rules>

</rewrite>

По сути, любые запросы на URL-адрес, заканчивающийся на .js, перехватываются и перенаправляются на тот же URL-адрес, но со строкой запроса с добавленным номером версии. Последующее условие необходимо для игнорирования URL-адресов, в которых уже есть строка запроса, в противном случае она перейдет в бесконечный цикл перезаписи.

Поскольку вы также хотите создавать версии файлов css, вы можете либо обновить URL-адрес совпадения до регулярного выражения, соответствующего js и css, либо создать отдельное правило, которое делает то же самое, но вместо этого предназначается для файлов css.

0 голосов
/ 06 марта 2012

Не думаю, что вам нужно правило перезаписи, вам нужен фильтр HTTP. Это должно было бы динамически анализировать и переписывать запросы в потоке HTTP.

Документация MSDN

Образец О'Рейли

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