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 Djangosettings.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>