2017-07-07 90 views
3

系统细节:
服务器:Apache,Ubuntu的16.02
客户端:WINDOWS 10,镀铬为什么我的CSS显示 ?

我的Apache配置文件看起来如下:

<VirtualHost *:80> 
     ServerName mycoolsiteA.mydomain.com 
     ServerAlias mycoolsiteB.mydomain.com 

     Alias /static /var/www/python/mysite/static 
     Alias /templates /var/www/python/mysite/templates 

     WSGIDaemonProcess my_app user=www-data group=www-data threads=5 
     WSGIScriptAlias//var/www/python/mysite/start.py 
     WSGIScriptReloading On 

     <Directory /var/www/python/mysite> 
       WSGIProcessGroup my_app 
       WSGIApplicationGroup %{GLOBAL} 
       order deny,allow 
       Allow from all 
     </Directory> 
</VirtualHost> 

当我加载的CSS它显示以下的浏览器。但是,这是非常随机的。它“有时”起作用,有时不起作用。

我的例子网址是: https://mycoolsiteA.mydomain.com/static/css/bs/bootstrap.min.css

我们有一个防火墙设备,其自动重定向HTTP到HTTPS,但我直接以https加载CSS。

而结果是这样的: enter image description here

但是,如果我刷新了几次,或者在结尾处添加R =号,它会清除缓存和负载。但是,它会随机再次执行,直到我再次清除缓存。

这被加载和工作:

enter image description here

在哪里寻找解决这个问题的任何想法,方向是什么?

+0

你有没有对服务器的访问日志?也许服务器端正在进行一些有趣的事情。 – jdv

+0

@jdv我看着Apache日志,什么都没有。甚至没有提示错误,或任何可能导致此错误的提示。 – CodeLikeBeaker

+0

检查您的原始CSS文件的字符编码。确保它是没有BOM的UTF-8。 – Martin

回答

8

欢迎来到UTF-8的欢乐世界!

我在PHP中看过几十次(请参阅UTF-8 all the way through)。你所经历的几乎可以肯定是一个UTF-8文件作为一些其他字符编码被传送(反之亦然)。我下载了Bootstrap,Notepad ++将它们标识为ANSI编码。您的Web服务器可能会强制使用UTF-8。看看这样的回应标题

Content-Type: text/css; charset=UTF-8 

所以你的网络服务器说它是UTF-8,但它不是真的。此时你的浏览器开始呕吐,这意味着它无法识别该字符。

如果是这种情况,有几种方法可以解决这个问题。

  1. 重新编码的文件为UTF-8(Notepad++能为你做这个)
  2. 停止传递缺省UTF-8。您的浏览器将尝试识别编码

只是踢,尝试loading the CSS directly from the MaxCDN servers

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 

他们没有传递UTF-8头