CDN中,字型檔案的跨域問題和解決

2022-02-08 20:17:19 字數 1187 閱讀 3825

@font-face是css3中的乙個特性,可以把自己定義的web字型嵌入到網頁中,隨著@font-face,越來越多的網頁採用字型圖示作為網頁中的小圖形。

比如bootstrap就採用了glyphicons 字型圖示 在bootstrap的架構下可以免費使用glyphicons的250多種圖示字型。另外乙個比較常用的開源圖示字型就是font awesome了,內含幾百種各種size的圖示檔案,可以很容易實現fixed width,animated icons,rotated,flipped,stacked等特性,跟能和bootstrap無縫配合。悅合同就是使用font awesome作為字型圖示。

當在配置cdn的時候,duang~~~

字型跨域!!!!!!

由於**的資源檔案使用的是另外的網域名稱(這樣做是便於瀏覽器在載入時可以提高載入效率,關於domain hash也就是多網域名稱來加速訪問的問題有空再說),這樣主網域名稱和資源的網域名稱尤其是字型檔案,就形成跨域訪問,在主網域名稱的**無法載入資源網域名稱中的字型。

處理這種跨域,只要設定access-control-allow-origin,允許目標網域名稱訪問就可以了,access-control-allow-origin是html5新增的乙個特性,在資源類的網域名稱下做如下配置(nginx的配置,apache相似處理)​

location ~ .*\.(eot|ttf|ttc|otf|eot|woff|woff2|svg)(.*)

配置完後,例牌reload配置,重新整理cdn快取,就ok了。

這裡說多一句,cdn會快取當時的response header的,每次修改必須重新整理cdn快取,不然瀏覽器刷死也不會生效。​

cdn配置cors允許跨域訪問時注意事項:

1.     目前不支援泛網域名稱新增,如*.12345.com,僅支援網域名稱精確匹配。

2.     目前僅支援配置一條白名單網域名稱。

3.     若使用oss產品作為源站,oss與cdn平台同時配置cors,cdn的配置將覆蓋oss。

4.     若源站為自己的伺服器或ecs產品,建議先進行動靜分離,靜態檔案使用cdn加速,cdn控制台配置的cors功能,僅對靜態檔案生效。

header set access-control-allow-origin "*"

# nginx config

if ($filename ~* ^.*?\.(eot)|(ttf)|(woff)$)

JS 跨域問題和解決方案

跨域問題是瀏覽器同源策略限制,當前網域名稱的js只能請求相同網域名稱下url。解決方式通常有兩種 1.使用jsonp,要求在後端返回的是jsonp格式的資料 js button click function error function 後端 if isset request callback em...

vue中解決跨域問題

一般來說,我們會在正式環境中講介面配置到和專案路徑是乙個網域名稱下的。因此,我們沒必要在呼叫介面的時候使用絕對位址,使用相對位址即可。但是開發環境的話,我們本地跑的是localhost 8080位址,當然要使用包含網域名稱的介面位址了。正式環境 介面位址 api 前端頁面位址 開發環境 如上,在請求...

vue中解決跨域問題

1.在vue.config中配置proxy devserver cookiepathrewrite 2.傳送網路請求。以axios.get 為例,在需要傳送網路請求的檔案中匯入axios import axios from axios 也可以在main.js檔案中配置全域性的axios,這樣可以直接...