.htaccess скрыть версию CSS / JS - PullRequest
0 голосов
/ 25 июля 2009

Мне было интересно, возможно ли вообще запустить RewriteRule, который будет скрывать версию CSS в теге ссылки.

Пример.

link href="css/global.css?v=1.2.3" rel="stylesheet" type="text/css"

Показать как Ex.

link href="css/global.css" rel="stylesheet" type="text/css"

Кажется, я не могу найти ничего по этому вопросу, и все, что я пытался, отправляет 500 Ошибка: (

Спасибо!

Ответы [ 3 ]

5 голосов
/ 25 июля 2009

Нет, вы не можете этого сделать. Вы не понимаете, что делает RewriteRule;он не меняет HTML, который вы создаете, он меняет способ обработки входящих запросов на ссылку.

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

4 голосов
/ 26 июля 2009

ну, я не вижу проблемы с версией в URL, но, возможно, это поможет вам

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^css/(.*)/(.*)\.css$ /css/$2.css?v=$1 [QSA]

, что позволит вам сделать:

<link href="/css/1.2.3/global.css" rel="stylesheet" type="text/css"/>
2 голосов
/ 25 июля 2009

Такое управление версиями часто используется для создания уникальных URI, которые клиент еще не знал. Это означает, что клиент должен запросить этот ресурс вместо использования кэшированной версии.

Если вы теперь хотите удалить эту информацию о версии, URI больше не будет уникальным, и клиент может не делать запрос, ноиспользуйте кэшированную версию. Но это, вероятно, не то, что вы хотите, иначе вы бы не использовали эту информацию о версии, не так ли?

...