CDN引起的 字型跨域問題,解決方案和問題
今天部署外網上線事宜,前端我來配置了CDN,阿里雲的 CDN服務,其他都沒問題,簡直了
阿里雲的CDN GZIP壓縮也是夠強
開啟GZIP壓縮後,原來我幾十K 的 JS檔案,直接變成了 不足1K ,秒載入,你妹,我們專案組高興了一把。
這網站還不是秒開麼 ?
----------------------------------------------
看效果 :
通過這個 我得到也給結論, 在程式碼檔案結構 儘量優化的同時,能力再強已經到極限了,但你伺服器辣雞,搭配不當,你程式碼優化上天 也是徒勞啊。
你不怎麼優化, 伺服器 各種技術配置到位的話, now你也看到了,我一個系統首頁也不過用了幾百ms,比我本地開發環境都快(mdzz,怪不得阿里這麼貴)!
------------------------------ 吹牛逼結束 ,開始記錄今天遇到的一個問題
* 字型 font 跨域載入問題 看圖
注:由於採用了cdn 加速, 本地測試 就出現瞭如此問題,其他一切正常的額!
那麼本問題直接導致 , css 字型 圖示無效,呵呵噠,顏值瞬間沒了。這能忍?
原因是:字型檔案在CDN伺服器上、專案部署在自己的伺服器上,字型檔案就出現了跨域載入的問題。
於是乎,開始了Google之旅,好吧,小夥伴大部分都給出瞭如下建議: 摘自 網路。親測有效
1、服務端設定XXX,具體的大家可以直接去搜索,分為apache和nginx兩種設定方法,因為我很討厭折騰這個務器,在我們坑,也無需弄我折騰,所以沒測試過,這個上線之後 親測有效,畢竟同源嘍
2、將字型檔案以base64編碼的方式引入內嵌到樣式檔案中。這個本人嘗試過,書寫格式如下:
@font-face { font-family: 'icon-tb'; src: url('../fonts/icon-tb.eot?59lb71'); src: url('../fonts/icon-tb.eot?#iefix59lb71') format('embedded-opentype'), url('../fonts/icon-tb.woff?59lb71') format('woff'), url('../fonts/icon-tb.ttf?59lb71') format('truetype'), url('../fonts/icon-tb.svg?59lb71#icon-tb') format('svg'); font-weight: normal; font-style: normal; }
改成
@font-face {
font-family: 'icon-tb';
Src : url("data:application/x-font-ttf;charset=utf-8;base64,XXXXXXXXXXXX") format("ttf");
}
rc : url("data:application/x-font-ttf;charset=utf-8;base64,XXXXXXXXXXXX") format("ttf");
}
實際使用過程將那一長串”X“換成自己的base64編碼即可。
3、將字型檔案放到專案的目錄下,也即讓它們同源即可,好吧,都是一個爹生的,也不認生啦,問題也就解決了。這個方法是最後採取的,驗證OK。
相關推薦
CDN引起的 字型跨域問題,解決方案和問題
今天部署外網上線事宜,前端我來配置了CDN,阿里雲的 CDN服務,其他都沒問題,簡直了 阿里雲的CDN GZIP壓縮也是夠強 開啟GZIP壓縮後,原來我幾十K 的 JS檔案,直接變成了 不足1K ,秒載入,你妹,我們專案組高興了一把。 這網站還不是秒開麼 ? -
前端-關於CORS跨域的解決方案,面向服務端
red 瀏覽器 環境 和我 methods retrieve name 後臺 一件事 最近自己在寫後臺管理系統的時候,並沒有采用jsp、freemaker、葉子等模板技術,而是由後端提供數據api,前端通過AJAX和JQuery來動態操作頁面上的一些div、table元素,
前後端互動跨域問題解決方案,跨域資源共享(CORS)
跨域資源共享(CORS) 普通跨域請求:只服務端設定Access-Control-Allow-Origin即可,前端無須設定,若要帶cookie請求:前後端都需要設定。 需注意的是:由於同源策略的限制,所讀取的cookie為跨域請求介面所在域的cookie,而非當前頁。如
通用版父頁面跨域訪問iframe裡面的內容解決方案,jupyter+tornado跨域通訊解決方案
1、問題:獲取jupyter裡面的內容現在已經將jupyter放進iframe裡面,現在的問題描述為:在父頁面獲取iframe裡面的內容,iframe裡面就是jupyter,這裡的父頁面是自己搭建的tornado伺服器開啟的頁面,網址為127.0.0.1:9000,ifram
C#進階系列——WebApi 跨域問題解決方案:CORS
dea ati ice pro target default 異常 測試工具 復雜 前言:上篇總結了下WebApi的接口測試工具的使用,這篇接著來看看WebAPI的另一個常見問題:跨域問題。本篇主要從實例的角度分享下CORS解決跨域問題一些細節。 WebApi系列文章
ajax跨域請求解決方案
tro cti jquer 解決方案 tab all ajax跨域 自帶 b-s 大家好,今天我們學習了js的跨域請求的解決方案,由於JS中存在同源策略,當請求不同協議名,不同端口號、不同主機名下面的文件時,將會違背同源策略,無法請求成功!需要進行跨域處理! 方案一、後臺P
ajax 跨域請求解決方案
allow option ajax cred eth post delet 求解 delete response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access
跨域常見解決方案
div 請求 如果 主域 安全問題 highlight chrom call navig 由於考慮到安全性問題,HTML的同源策略不允許JavaScript進行跨域操作,但是隨著web端功能越來越多,對跨域需求逐漸增大,於是乎便催生了很多解決跨域的方法,通過網絡搜索和資
laravel 5.5 oauth2.0 跨域問題解決方案
title apach war laravel jsonp 另一個 over gin strong 一、laravel-Cors 安裝 在終端執行安裝命令如下: composer require barryvdh/laravel-cors
[轉]No 'Access-Control-Allow-Origin' header is present on the requested resource.'Ajax跨域訪問解決方案
不能 ade 方式 ole 相同域名 all log head 允許 原 https://blog.csdn.net/zhoucheng05_13/article/details/53580683 No ‘Access-Control-Allow-Origin‘ heade
CORS 跨域與 TP5中跨域的解決方案
在做專案過程中,使用Vue-element-admin作為前端,ThinkPHP5作為後端框架進行開發,會遭遇跨域問題,本文給出ThinkPHP5解決跨域 1.CORS的概念 CORS(Cross-Origin Resource Sharing 跨源資源共享),當
angularjs跨域post解決方案
前端同學李雷和後臺同學韓梅梅分別在自己電腦上進行開發,後臺介面寫好的時候,李雷改動完就把前端程式碼上傳到gitlab,然後在測試機上從gitlab上拉下來,然後在測試機上移動最新程式碼,最後回到本機重新整理頁面。有時候碰到網速不好的情況傳個git傳了半天,或者李雷剛上傳完發現少寫了一個單詞,加上再傳
WebApi跨域多種解決方案
關於WebAPI跨域踩到的一點坑 最近在嘗試前後端分離的WebAPI+AngularJS方案,在率先處理授權的時候,踩到了一點WebAPI跨域的坑,其實嚴格意義上來說也不算是坑吧,只是我自己對WebAPI不熟悉而已,這裡我與大家分享一下。 先說一下我這邊遇到的情況: 我是在做登入
javaWeb專案跨域問題解決方案:
1.簡單的servlet專案 1.配置一個filter過濾器,過濾所有的請求,並且設定響應頭 package Filter; import javax.servlet.*; import javax.servlet.http.HttpServletRes
vue+django跨域問題解決方案(前後端兩種方案)
1.Vue前端設定代理(方案一) 我們在使用vue-cli啟動專案的時候npm run dev便可以啟動我們的專案了,通常我們的請求地址是以localhost:8080來請求介面資料的,localhost是沒有辦法設定cookie的。 我們可以在vu
Geoserver跨域終極解決方案
在其他程式呼叫使用Geoserver時,可能會遇到跨域 如 Access to XMLHttpRequest at 'http://localhost:8080/geoserver/gwc/service/tms/1.0.0/KylinWS:[email protected]:[e
No 'Access-Control-Allow-Origin' header is present on the requested resource.'Ajax跨域訪問解決方案
出現該錯誤是由於存在網站跨域訪問的問題。 什麼是網站跨域,簡單來講,當你通過ajax來請求或傳送資料時,兩個域名之間不能跨過域名來發送請求或者請求資料,瀏覽器會認為它是不安全的。 解決方式: 1、伺服器端解決方案 設定響應報文頭 response.setHeader
JS跨域請求解決方案
1 js跨域請求 1.1 域名的比較 1.2 什麼是JS跨域: 1.3 預設情況下JS不允許跨域 1.4Access-Control-Allow-Origin 2 跨
WebApi 跨域問題解決方案:CORS
前兩篇文章介紹了WebApi專案的建立和測試,今天來說說WebApi跨域訪問的問題。本篇主要介紹了利用CORS解決跨域問題一些細節和具體步驟,下面來看看吧。 一、釋出WebApi 既然是解決WebApi跨域問題,那WebApi(http://localhost:9002)
No 'Access-Control-Allow-Origin' header is present之 為什麼會跨域及解決方案
1 瀏覽器的限制 2 跨域 3 瀏覽器傳送的是 XHR (XMLHttpRequest)請求 當以上三個條件都滿足時瀏覽器會丟擲跨域請求異常(記住是瀏覽器丟擲的異常,和服務端沒太大關係),在講跨域請求解決方案前先了解幾個問題。 1 http請求中,哪些是常見的簡單請求,哪些是非簡單請