【发布时间】:2014-10-05 22:07:30
【问题描述】:
问题
如果我通过www.domain.tld 访问我的网站,则忽略@font-face 规则。
如果我去domain.tld(没有'www'部分)@font-face被视为。
所有其他 css 格式在这两种情况下都可以正常工作。
CSS
@font-face {
font-family: 'font-name';
src: url(../fonts/font-name.eot);
src: local("font-name"), url(../fonts/font-name.ttf) format("truetype");
}
姜戈
在我的 Django settings.py:
STATIC_ROOT = '/var/www/domain.tld/static/'
STATIC_URL = 'http://domain.tld/static/'
如果我将其更改为 STATIC_URL = 'http://www.domain.tld/static/',@font-face 规则将在 domain.tld 上被忽略并在 www.domain.tld 上被视为,所以这是相反的行为。
阿帕奇
<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>
【问题讨论】:
-
为什么使用带有 FQDN 的 STATIC_URL?只需使用 '/static/' 并让 Apache 处理其余部分。
-
试试 url 引号
src: url('../fonts/font-name.eot'); -
是的,因为浏览器认为即使从不同域加载字体也是一个坏主意(跨站点)。
-
@petkostas 因为我认为它是一样的。嗯,我测试了它,现在它似乎工作了,但我不知道为什么(完全不同的域也应该工作)......此外,所有其他 css 规则在这两种情况下都被考虑。有人解释一下吗?
-
@petkostas 谢谢,有道理!