剛才碰到一個css加載字體跨域問題,記錄一下。
站點的動態請求與靜態文件請求是不同的域名的。站點的域名為 www.domain.com,而靜態文件的域名為 st.domain.com。
問題:
頁面中加載css文件:<link rel="stylesheet" href="http://st.domain.com/css/uniform.css" />
此css中調用了外部字體如下:
@font-face {
font-family: 'FontAwesome';
src: url('../font/fontawesome-webfont.eot');
}
瀏覽器報請求跨域的錯誤。
解決方案:
我們使用Access-Control-Allow-Origin:* 通過啟用cors 來解決跨域問題。
具體步驟如下:
1.開啟apache的mod_headers模塊
LoadModule headers_module modules/mod_headers.so
2.設置Access-Control-Allow-Origin
<FilesMatch "\.(ttf|otf|eot|woff)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
done!