Html @访问“时字体不起作用”;www.domain.tld“;但与“合作”;域名.tld“; 问题

Html @访问“时字体不起作用”;www.domain.tld“;但与“合作”;域名.tld“; 问题,html,css,django,apache,Html,Css,Django,Apache,如果我通过www.domain.tld访问我的站点,@font-face规则将被忽略。 如果我转到domain.tld(不带“www”部分)@font-face。 所有其他css格式在这两种情况下都可以正常工作 CSS 德扬戈 在my Djangosettings.py中: STATIC_ROOT = '/var/www/domain.tld/static/' STATIC_URL = 'http://domain.tld/static/' 如果我将其更改为STATIC\u URL=http:

如果我通过
www.domain.tld
访问我的站点,
@font-face
规则将被忽略。 如果我转到
domain.tld
(不带“www”部分)
@font-face
。 所有其他css格式在这两种情况下都可以正常工作

CSS 德扬戈 在my Django
settings.py
中:

STATIC_ROOT = '/var/www/domain.tld/static/'
STATIC_URL = 'http://domain.tld/static/'
如果我将其更改为
STATIC\u URL=http://www.domain.tld/static/“
domain.tld
上省略
@font-face
规则,并在
www.domain.tld
上考虑,因此这是相反的行为

阿帕奇

CustomLog/var/log/apache2/domain.tld.log组合
ServerName domain.tld
ServerAlias www.domain.tld
WSGIScriptAlias//var/www/domain.tld/wsgi
别名/static//var/www/domain.tld/static/
别名/robots.txt/var/www/domain.tld/static/robots.txt
别名/favicon.ico/var/www/domain.tld/static/img/favicon.ico

一些浏览器拒绝跨域Web字体嵌入(不确定它是否适用于所有浏览器或某些浏览器),我认为这应该保持原样(安全性方面)。 除此之外,静态URL或媒体URL都不需要FQDN。web服务器负责提供静态内容,URL用于为资产加载提供可识别的URL。因此,如果您从子域访问您的网站,并非所有内容都能正常工作如果您的静态中有FQDN,请删除FQDN并仅使用所需的目录名,这样也可以更轻松地将设置移植到沙箱或具有多个子域的生产系统。 您还可以进一步检查这个stackoverflow问题(提供了一些解决方案,请注意,我不知道它是否工作,因为我从未遇到过这样的问题):


为什么将静态URL与FQDN一起使用?只需使用“/static/”并让Apache处理其余部分。只需在引号
src:url(“../font/font-name.eot”)中尝试url是的,因为浏览器甚至认为不同域的字体加载是一个坏主意(跨站点)。@ PokStas,因为我认为它是一样的。嗯,我测试了它,现在它似乎可以工作了,但我不明白为什么(完全不同的域也应该可以工作)…此外,所有其他css规则在这两种情况下都被考虑。有人解释吗?@petkostas谢谢,这很有道理!谢谢你的详细解释!
STATIC_ROOT = '/var/www/domain.tld/static/'
STATIC_URL = 'http://domain.tld/static/'
<VirtualHost *:80>
    CustomLog /var/log/apache2/domain.tld.log combined

    ServerName domain.tld
    ServerAlias www.domain.tld

    WSGIScriptAlias / /var/www/domain.tld/wsgi


    Alias /static/ /var/www/domain.tld/static/

    Alias /robots.txt /var/www/domain.tld/static/robots.txt
    Alias /favicon.ico /var/www/domain.tld/static/img/favicon.ico
</VirtualHost>