使用 htaccess 提供不同的 CSS 和 JavaScript 文件

Serve diffrent CSS and JavaScript files with htaccess

本文关键字:CSS JavaScript 文件 htaccess 使用      更新时间:2023-09-26

在.htaccess中使用RewriteRule为不支持CSS3的浏览器提供不同的CSS和Javascript是一个坏主意吗?如果是这样,为什么?

例如,我想为不完全支持 CSS3 的浏览器提供特殊的 CSS 和 Javascript。

我知道您可以在 HTML 中使用<!--[if xx]>,但我坚持在服务器级别这样做会更干净。

请指导我。

我打算如何做到这一点的例子:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "MSIE 9" [or]
RewriteCond %{HTTP_USER_AGENT} "MSIE 8" [or]
RewriteCond %{HTTP_USER_AGENT} "MSIE 7" [or]
RewriteCond %{HTTP_USER_AGENT} "MSIE 6"
RewriteRule the-file-for-all-other-browsers.css /css/style-for-ie-browsers-below-10.css [NC,L]

你打算怎么用.htaccess做到这一点?探查用户代理字符串可能会导致误报,通常不建议这样做。你应该扔一些像 Modernizr 这样的东西,然后你可以为不支持你正在寻找的某些功能的各种浏览器准备优雅的降级/插件。

还值得一提的是,使用 <!--[if IE]--> 标签的开销最小,因为其他浏览器会忽略它们并且不会加载内容,它们也不会在使用类似用户代理字符串(指向 Opera)的浏览器上触发。

我会说这是一个坏主意。 .htaccess重写将在每个请求上得到处理。 这意味着对于图像,每个文件,所有内容。 这是很大的开销,可能会导致网站速度变慢。

考虑使用 CSS3PIE,它为 IE 9、8 和 7 提供了 polyfill,为它们提供了 CSS3 功能。

我认为这很糟糕,因为您无法确定htacess中的功能支持。

您不应该使用浏览器嗅探来提供优雅的降级,而是在向浏览器展示高级功能(渐进式增强)之前确定浏览器是否支持所需的功能