2017-07-07 93 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頭