2016-09-15 95 views
0

我寫了一個自定義腳本來包含我經常請求的各種文件。這類文件的例子有:從自定義腳本動態加載時不顯示字體真棒圖標

  • bootstrap.css
  • bootstrap.js
  • 的jquery.js
  • jqueryui.js
  • 字體awesome.css

我的自定義腳本被命名爲remote.php。我包括我的隨機CSS和JS文件到我的網頁是這樣的:

<!-- bootstrap css --> 
<link rel="stylesheet" href="remote.php?type=bscss" type="text/css"> 
<!-- font awesome css --> 
<link rel="stylesheet" href="remote.php?type=facss" type="text/css"> 
<!-- bootstrap js --> 
<link href="remote.php?type=bsjs" type="application/javascript"> 
<!-- jquery js --> 
<link href="remote.php?type=jqueryjs" type="application/javascript"> 

現在,我的全部,包括從各自的網站已經被下載,上傳到我的服務器,並安裝/配置文件(如果需要)根據家庭網站提供的說明。

我的腳本按我期望的那樣工作,只有一個接口.....字體超棒的圖標向我們展示了塊而不是圖標。其他一切都很好....

我已經確保根據我打電話的腳本在我的remote.php文件中設置標題。

  • 的.css頭設置爲文本/ CSS設置爲
  • 的.js頭應用程序/ JavaScript的

字體真棒CSS文件src屬性已經更新到我的網站的完整URL,但依然沒有。

如果我直接調用font-awesome.css文件(這是在我的服務器上),並且如果必須這樣做才能使圖標正常工作,那麼圖標就可以工作。然而,有一個腳本包含我所需要的所有文件會使生活變得更簡單,因此我真的很想弄明白這一點。

回答

0

您也必須下載字體。可能你有相對路徑來字體真棒字體。

+0

字體出現在下載包中。另外,當我直接調用我的服務器上的font-awesome.css文件時,這些圖標可以正常工作。再次,它們在直接鏈接到.css文件時工作,在動態調用時不起作用。 –

+0

如果你有在線,你可以給我鏈接嗎? – ban17

+0

如果你檢查網絡資源,你有404嗎?我很確定這有問題的路徑。如果你使用remote.php來加載遠程文件的內容然後打印它,它會搜索你的服務器上的文件,而不是遠程獲得你的css文件。 – ban17

1

我能解決我的問題,這竟然是一個CORS的問題,而不是返回404,它返回一個403

的解決方案是編輯我的.htaccess文件,分佈在我的服務器的根。以下代碼解決了我的問題。

# ---------------------------------------------------------------------- 
# Webfont access 
# ---------------------------------------------------------------------- 
# Allow access from all domains for webfonts. 
# Alternatively you could only whitelist your 
# subdomains like "subdomain.example.com". 
<IfModule mod_headers.c> 
    <FilesMatch "\.(ttf|ttc|otf|eot|woff?|woff2?|font.css|css)$"> 
     Header set Access-Control-Allow-Origin "http://SUBDOMAIN.DOMAIN.org" 
    </FilesMatch> 
</IfModule>