Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 忽略来自CDN的CSS链接_Html_Css_Chromium - Fatal编程技术网

Html 忽略来自CDN的CSS链接

Html 忽略来自CDN的CSS链接,html,css,chromium,Html,Css,Chromium,加载我的站点时,我突然遇到问题。使用较新版本的Chromium 从Inspect元素中可以看出,我的一个样式表似乎没有被应用到元素中 有关链接如下: 但是,主CSS似乎已被处理,并且正在将CSS分配给元素,即: 这一切都可以在Firefox和Safari上运行。它不适用于以下版本的Chromium 版本45.0.2454.85 Ubuntu 14.04(64位) 版本44.0.2403.89 Ubuntu 14.04(64位) 这些浏览器是从以前的Chromium浏览器升级而来的。 那么,铬

加载我的站点时,我突然遇到问题。使用较新版本的Chromium

从Inspect元素中可以看出,我的一个样式表似乎没有被应用到元素中

有关链接如下:

但是,主CSS似乎已被处理,并且正在将CSS分配给元素,即:

这一切都可以在Firefox和Safari上运行。它不适用于以下版本的Chromium

版本45.0.2454.85 Ubuntu 14.04(64位) 版本44.0.2403.89 Ubuntu 14.04(64位)

这些浏览器是从以前的Chromium浏览器升级而来的。 那么,铬的升级有什么变化吗?自从升级后,我再也没有旧版本要测试了

如果我下载
style.css
的内容,并使用开发工具插入一个
元素,其中包含
style.css
的内容,它就会工作。所以,我相信这不是Chrome特有的语法问题

此外,我还看到了其他答案,比如CDN返回了错误的
二进制/八位字节流的内容类型
,但是这两个CSS文件的内容类型都是相同的,那么为什么一个可以工作而另一个不能工作呢?无论如何,我无法真正更改响应类型,因为我不控制CDN

在您开始指出链接中的
type=“text/css”
media=“all”
http:
差异之前,我也对它们进行了更改。Inspect元素表示它已下载了
style.css
文件,并表示其“类型”为“样式表”,与
normallayout.css的类型相同

我甚至通过将页面下载到一个文件中,在本地进行编辑,并从文件中加载相同的结果,对链接进行了修改,使其看起来完全相同。试试看

所以,我真的不知道发生了什么

为什么只有铬?与其他浏览器的不兼容性是什么


谢谢。

正如上面的评论中所提到的,问题实际上是
内容类型
标题

具体来说,该文件使用
内容类型:undefined
头提供。它应该是
内容类型:text/css

您提到的另一个文件提供了
内容类型:text/css
,这就是它按预期工作的原因


自行验证内容类型 要自己验证标题,可以使用带有
-I
选项的
curl
命令,如下所示:

curl -I http://objects.dreamhost.com/busme-prod-files/main/538e298e22f324388b007ab8/original/style.css
wget -S http://objects.dreamhost.com/busme-prod-files/main/538e298e22f324388b007ab8/original/style.css
产生此输出的:

HTTP/1.1200正常
内容长度:16795
接受范围:字节
最后修改:2014年6月3日星期二20:01:18 GMT
ETag:“06b3748eba4f2e5ccb70e8444abd5c77”
内容类型:未定义
日期:2015年9月24日星期四格林尼治标准时间21:33:18
将其与运行此进行比较:

curl -I http://busme-prod-assets.objects.dreamhost.com/assets/normal-layout-3df2197619a7f407056e8569a5b5819f.css
这就产生了:

HTTP/1.1200正常
内容长度:239447
接受范围:字节
最后修改时间:2015年5月7日星期四05:44:24 GMT
ETag:“e4b17d7e6405120b1488079bb0081e6f”
缓存控制:公共,最大年龄=31557600
到期时间:2016年5月6日星期五11:44:23 GMT
内容类型:文本/css
日期:2015年9月24日星期四格林威治时间21:33:36
如果没有安装
curl
命令,但安装了
wget
命令,则可以使用
wget-S
获得类似信息,如下所示:

curl -I http://objects.dreamhost.com/busme-prod-files/main/538e298e22f324388b007ab8/original/style.css
wget -S http://objects.dreamhost.com/busme-prod-files/main/538e298e22f324388b007ab8/original/style.css

此外,我还看到了其他答案,比如CDN正在回归 二进制/八位字节流的内容类型错误,但此内容类型无效 这两个CSS文件都是相同的,那么为什么有一个是相同的呢 工作而不是其他

正如上面的
curl-I
输出所示,您提到的文件的
内容类型实际上并不相同;一个有正确的
内容类型:text/css
标题,而另一个没有


如果您能够从
http://busme-prod-assets.objects.dreamhost.com
具有正确的
内容类型:text/css
标题,那么您应该能够确保curl-I
http://objects.dreamhost.com/busme-prod-files
文件也会获得正确的
内容类型

问题很可能是内容类型不正确。与dreamhost交谈,你必须能够设置内容类型,否则CDN根本不可用。@EmilStenström,那么我真的不明白
正常布局.css
的工作原理,因为来自InspectElement的所有指示都是它来自同一个地方,并且具有相同的内容类型。正如下面使用
curl-I
的回答所述,
normal layout.css
确实有一个
内容类型:text/css
的响应标题,而对于内容类型,
style.css
的响应头为
undefined
。然而,我不知道为什么Chrome的开发者工具在网络标签上说“二进制/八位字节流”
,这正是我今天早上做测试的想法。现在我想知道为什么Chromium Developer Tools在网络选项卡中都报告为二进制/八位字节流。我的下一个问题是如何告诉Dreamhost(我不喜欢也可能会放弃)如何进行这种特定的内容类型指定。是的,当我有时间时,我将尝试调查最近Chromium中围绕这一点发生的变化。就Dreamhost而言,如果您可以在Digital Ocean或其他地方进行自托管,您肯定会获得更大的灵活性(但代价是需要自己进行更多的系统维护),这是给其他人的提示。我使用一个名为
s3cmd
的Ubuntu可用python工具将文件重新上传到Dreamhost,但我不得不修改它以使用Dreamhost而不是Amazon。我的CMS上传的文件没有正确的mimetype(我猜我还需要修复其他一些东西)。我分别将所有
.css
文件更改为
text/css
,将
.js
文件更改为
text/javascript
。现在