【问题标题】:Why is my css showing ���?为什么我的 css 显示����?
【发布时间】:2017-12-11 21:07:23
【问题描述】:

系统详情:
服务器:Apache、Ubuntu 16.02
客户端:Windows 10、Chrome

我的 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。

结果如下所示:

但是,如果我刷新几次,或者在末尾添加一个 r=number,它将清除缓存并加载。但是,它会再次随机执行,直到我再次清除缓存。

在这里它已加载并开始工作:

关于在哪里解决这个问题有什么想法和方向吗?

【问题讨论】:

  • 您有权访问服务器日志吗?也许在服务器端发生了一些有趣的事情。
  • @jdv 我查看了 apache 日志,什么也没有。甚至没有提示错误或任何会导致此问题的内容。
  • 检查原始 CSS 文件的字符编码。确保它是没有 BOM 的 UTF-8。
  • 检查您的 HTTP 服务器是否提供了正确的 CSS 文件头
  • 你的 CSS 是否包含 unicode?​​span>

标签: css apache flask https character-encoding


【解决方案1】:

欢迎来到有趣的 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 标头

【讨论】:

    猜你喜欢
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 2023-04-02
    • 1970-01-01
    • 2013-05-26
    • 2012-11-14
    相关资源
    最近更新 更多