2016-04-27 51 views
1

由於問題出在專有的公司系統上,因此我對此的通用示例提前表示歉意。未從某些來源加載的導入字體

我支持一個Web應用程序,它允許編輯輔助CSS文件,以便對頁面進行樣式設置(在應用程序範圍內)。我正在嘗試應用公司範圍內使用的非標準字體,但我無權編輯該網站的HTML或標題,只有CSS。我嘗試在引用實際字體文件URL(因爲它們在我們的公司網站上使用)時聲明瞭主CSS中的font-family,但它們實際上並未加載。

然後,我採用了相同的font-family片段,併爲字體聲明創建了一個單獨的CSS文件,並將URL更改爲指向相對路徑中的實際文件(例如:url('fonts/DINWeb.woff' ))。我將這個fonts.css文件與參考字體文件(eot,ttf和woff版本)一起移動到公共Dropbox文件夾中進行測試。我可以通過在我的應用程序的CSS頂部使用下面的代碼行(URL修改)簡單地導入fonts.css文件來獲得所有工作。

@import url('https://dl.dropboxusercontent.com/.../fonts.css');

的問題是,Dropbox的解決方案只是臨時測試目的。一旦我確認所有工作都按預期工作,我將確切的文件夾結構移至已批准使用的外部託管位置。當我將CSS中的導入代碼更新爲新的URL時,字體不會加載。我可以從我的瀏覽器訪問CSS文件和字體文件沒有任何問題,所以我不明白爲什麼Web應用程序無法加載它。我也有託管在同一個託管位置的圖片,可以在沒有問題的情況下進入網絡應用程序,只有字體有問題。這些文件託管在Dropbox上,但不是其他源。我還仔細檢查了URL的引用,並且它們仍然是正確的,因爲文件夾結構從未更改過。

任何建議將非常感激。理想情況下,我想直接在Web應用程序的CSS中引用公司URL,就像我最初嘗試的那樣。如果這不可行,我需要它與外部託管的文件一起工作,因爲Dropbox不能用作永久性解決方案。

+0

經過進一步的挖掘,我發現字體越來越被阻塞,因爲「No」Access-Control-Allow-Origin;標題出現在請求的資源中。這是我第一次處理這件事。任何建議如何我可以將這添加到我的請求的文件? – user2788371

回答

0

基本上你不能從一個域中加載其他域中的資源,除非第二個主機說你可以。請參閱CORS

您可以通過將所有內容移動到同一個域(或強制用戶永遠在某個域中)或將Access-Control-Allow-Origin標頭添加到響應來解決此問題。

如果您可以在服務器中編輯.htaccess文件,則可以實現最後一件事。地址:

Header set Access-Control-Allow-Origin "*"

或者與從中你會發出請求的域名更換*

是的,一個子域是不同的域(abc.com,www.abc.comdl.abc.com是不一樣的)。

+0

解決了這個問題。謝謝!! – user2788371