- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个与 Deflate 压缩、Apache (htaccess) 和 CSS 文件相关的非常有趣的问题。
我的服务器上有两个 CSS 文件。一个叫做 styles.php 并且在 styles/目录中通过 mod_rewrite 根据数据库值添加动态值(它从 styles.php 重写为 site.css 并且文件开头有一个 text/css 头)。我还有一个常规的旧 css 文件,其中静态内容不会在名为 styles.css 的同一目录中更改。
我想为我的站点添加压缩功能,因此我添加了以下行以开始压缩我的 css 和 js 文件。我将其添加到我网站的 root_directory。
<ifModule mod_deflate.c>
<filesMatch "\.(js|css)$">
SetOutputFilter DEFLATE
</filesMatch>
</ifModule>
嗯,最初那行不通。所以我将根 htaccess 文件中的这一行从这一行更改为下一件事。 (下面的这段代码位于文件的顶部)
AddType application/x-httpd-php5 .html .php
AddType application/x-httpd-php5 .html .php .js .css
然后我的 js 和其中一个 css 文件开始被压缩(用 YSlow 验证......耶!)。奇怪的是被重写的 css 文件被压缩(styles.php 文件)但是浏览器不再读取 styles.css 文件(静态文件)。一旦我从该 AddType 行中删除“.css”,浏览器就会再次开始读取该文件,我的 css 恢复正常,但它不再通过 apache 进行压缩。
如果我添加类型,为什么浏览器不读取静态 css 文件有什么想法吗?我尝试只使用 text/css 而不是 .css 并且它没有压缩文件(但浏览器解释了它)。
更新:
我将其添加到根 htaccess 文件中。我们现在已经压缩、解释了甜蜜。
<filesMatch "\.css$">
FileETag None
<ifModule mod_headers.c>
Header set Content-type "text/css"
</ifModule>
</filesMatch>
最佳答案
当您通过 PHP 预处理器运行 CSS 文件时,PHP 将通过默认 header 自动将其输出为 text/html
文件,因为您没有手动指定它。实际上,您的浏览器正在接收一个扩展名为 .css
的文件,该文件的 header 声称它是 HTML 文件,因此它试图将其解释为 HTML 而不是 CSS。
如果你的CSS文件确实需要以PHP的形式运行,而且里面有PHP,你需要重新下发合适的文件类型,这样输出的时候还是CSS:
<?php
header('Content-type: text/css');
?>
您不能只通过 PHP 发送 CSS 文件并期望它的工作完全相同。如果您实际上没有使用 PHP 对其进行预处理,那么您不应该通过那里发送它。
至于通货紧缩问题,我从来没有真正让 mod_deflate 亲自工作(不知道为什么)。我不得不改用 mod_gzip。
关于php - 在 .htaccess 中使用 AddType .css 时浏览器不解释 .css 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10080103/
jquery 有 .addType() 函数吗?我知道有一个 .addClass() 来添加类,但我使用速记方式将输入元素附加到 div,并且想知道是否有一个 .addType() 来将类型添加到输入
我正在运行 OS X Lion 和 PHP 5.3.6 的 Mac 上工作,并尝试了 AddType、AddHander 和 AllowOverride已在 httpd.conf 中设置为 ALL;然
我为我正在工作的站点的 urlrewrite 创建了 .htaccess 文件。添加 .htaccess 后,它停止加载 JavaScript 和 CSS。所以我随后添加了 AddType text/
那些有什么区别? AddType x-mapp-php5 .php AddType application/x-httpd-php .php AddType x-httpd-php .php ? 当我
我已经阅读了大约 10 个这样的问题,但是这个简单的问题似乎没有答案。 什么会导致 .htm 文件被下载而不是作为 php 执行? 我正在使用以下代码: AddType application/x-h
我目前正在使用 Uniform Server,我想了解如何对其应用 AddType,以便在我在 PHP 页面上使用该字体时注册我的自定义字体(即 .otf 字体)。这是我通过 Google Chrom
我在/font 目录中创建了一个 ,htaccess 文件,其中仅包含这一行(作为故障排除的一部分)。 AddType text/css .css 尽管如此,Google Chrome(甚至 19.0
我在我的几个网站上运行 YSlow,它报告说一个 .js 文件没有被压缩。 mod_deflate当然启用了(其他html和文本文件被压缩): AddOutputFilterByType DEFLAT
有人可以解释 htaccess 文件中 AddType 和 AddHandler 之间的区别吗?我想进行设置,以便我可以通过服务器运行一个 javascript 文件 (.js),就好像它是一个 ph
我使用 @font-face 来嵌入字体(感谢 Paul Irish )。在尝试修复 Chrome 关于 woff 字体 MIME 类型错误的警告时,我发现了大量相互矛盾的建议。 每个人似乎都同意 .
我的 ISP 要求我将以下内容放入我的 .htaccess 文件中: AddType x-mapp-php5 .php 但这破坏了我的开发机器。 我不太明白该指令的用途,但我厌倦了为开发人员将其注释掉
目前在域根目录中的 htaccess 文件中使用“AddHandler application/x-httpd-ea-php56 .php”,因为这是唯一有效的方法。 如果我尝试切换到 php7,该页
我正在使用 1and1 托管,并且我有这个 javascript 代码 $.post('main.php',{data:'somedata'},function(e){
我需要转换 .htaccess AddType application/x-httpd-php .txt 到 web.config。你能帮我吗?我试过
这就是问题所在,尝试从文件夹加载 css 文件并出现控制台错误:“资源解释为样式表但使用 MIME 类型文本/html 传输”。尝试通过添加带有“AddType text/css .css”的 .ht
添加此代码: AddType application/x-httpd-php .php后 ... #AddEncoding x-compress .Z #AddEncoding x-gzip .gz
我要求我的开发人员通过在 .htaccess 文件中添加以下行来设置网站图标的过期日期: ExpiresByType image/ico "access plus 1 years" 但是它没有过期日
我有一个与 Deflate 压缩、Apache (htaccess) 和 CSS 文件相关的非常有趣的问题。 我的服务器上有两个 CSS 文件。一个叫做 styles.php 并且在 styles/目
我正在编写需要接受自定义嵌套类型的自定义 Ant 任务。 根据 the Ant manual ,我应该能够使用 addConfigured(TYPE x) 而不是 addConfiguredTYPE(
我是一名优秀的程序员,十分优秀!