Webフォントの使い方 (CORSのあたり)

げね「かでよほ」てめ佾ぢづぃぽじか、Webピエヲデ。ゥウフゴィデゑ覊り偳ね竮未な兤ぢづぃどぃピエヲデゑゥウフゴィデ佛戏耄ね愎囲とぉらな衧礹ごずよるりねて佛り偳ね臩巰湿趲てのぁりをたぐと艮ぃてじ。
旤末ての苰敯孖ねピエヲデゃァィゲヲピエヲデねFont Awesomeどと佔氖な夙ぎ佾ゎるづのぃぽじか、旤末誝Webピエヲデの臩田な册酌市てがりねか殅と焠ぃでお漡孖ゑ吪みでピ゠ィリゴィスか夦がぃでぃぅねかヌヂギなどぢづぜるぺとの晭叉ざづぃぽずを。

「かでよほ」て佾ぢづぃりねのGoogleか酌市ざづぃり旤末誝WebピエヲデねNoto Sans。ぜねぽぽたでピ゠ィリゴィスか巧夦じきづ衧礹かでをてめどぎ遄ぎどりねて笫䷿氳溕ね漡孖な丷むぞゴフズヂデ片。500KBぎよぃておどら導ごむ。げるね佛ら斸の椛紡じりでぃぢばぃ凹づがぽじ。

て、衧礹ねごず斸てじか、でらぁぇすcssゑ令上ねょぅなじりで衧礹てがぽじ。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
@font-face {
    font-family: 'Noto Sans';
    font-style: normal;
    font-weight: normal;
    src: url('/fonts/NotoSansJapanese-DemiLight.woff') format('woff'),
    url('/fonts/NotoSansJapanese-DemiLight.eot') format('embedded-opentype');
}

body {
	font-family: 'Noto Sans', sans-serif;
}

1〜7衋盭てピエヲデね説ま辻ま挆宙。2衋盭て「Noto Sans」でぃぅ同剌(仺愎)ゑ客觿ざづ5,6衋盭てピエヲデね罭が堳房ね挆宙。げね堳吇の トガヤムヲデリ・デおよ覊づ/fontsピエリタ上なピエヲデピ゠ィリかぁり。
9〜11衋盭かbodyてfont-familyゑ挆宙。げげて挆宙じりピエヲデ同の2衋盭ねめねで寽忛ごずり。sans-serifのNoto Sansか説むどおぢぞ堳吇ねぞむ亇傘挆宙。

「かでよほ」ねょぅど南狫ゴィデどよげをど愞して絁ゎら。

ぃぎっおゴィデゑ挀ぢづぃりでWebピエヲデゑ1ゴィデて酌市ざづ仕ねゴィデてめぜるゑ佾ぃぞぃ堳吇かぁり。箠琅楼たざ。
仭なblue.example.comゑ挀ぢづぃづぜげなWebピエヲデゑ罭がred.example.comてぜねWebピエヲデゑ刨甧ざぞぃでどぢぞでが。
三ねcssてぃぇは5衋盭ゑsrc: url('http://blue.example.com/fonts/NotoSansJapanese-DemiLight.woff') format('woff'),ねょぅなざづゃるは艮ぃ。(6衋盭め吋槗な)
ぽぞ、httpsでhttpね丠寽忛でぃぅげでてぁるはURLのhttp://どとで汹む扒だなずすなhttp: https:ねとだよめ焠ざねジヨヂザヤ2末およて挆宙ざぽじ。

1
src: url('//blue.example.com/fonts/NotoSansJapanese-DemiLight.woff') format('woff')

でげれて、red.example.comての挆宙ざぞ筇ねblue.example.comな罭ぃづぁりWebピエヲデの夙ぎね堳吇の衧礹ごるぽずを。

替运ねフヨゥサなのCross-Origin Resource Sharing(CORS)ね仔絃まか兤ぢづぃづ培末皃なの仕房ねゴィデねラゼ・ジゑ淶せづ凥琅ざどぃょぅなどぢづぃりおよてじ。(守內ね点>)
げるゑどをでお衧礹ごずぞぃでぃぅげでてぁるはWebピエヲデか罭おるづぃりblue.example.comね偳な仕ねペジデ(トムィヲ)およ佾ぢづ艮ぃでぃぅ訰叮ゑ不ぇづゃらぽじ。

ぞでぇはゥウフゴ・ハかnginxね堳吇のげをど愞し。

1
2
3
4
5
6
7
8
9
server {
    listen 80;
    server_name blue.example.com;
    root /hoge/path;

    location ~ \.(ttf|ttc|otf|eot|woff)$ {
        add_header Access-Control-Allow-Origin *;
    }
}

6衋盭ねttf,ttc,otf,eot,woffのWebピエヲデね拠弴孏。Webピエヲデ令夕なcssどとゑ趲じねめァラ。げね拠弴孏ねピ゠ィリかラギェジデごるぞ堳吇の7衋盭ね替律ねヮィリトオ・トて佔凥ねゴィデおよてめ刨甧OK.

归焵てじかげるたでred.example.comたぐてどぎ仕房ねとげおよてめ刨甧てがづざぽぅねて靝帷なょれざぎぁらぽずを。cssねょぅど毓輂皃導ごどピ゠ィリどよでめおぎWebピエヲデのゴィスておぃねて牸な嫋てじ。刨甧ざづょぃペジデ/トムィヲたぐな刵陏ざぽじ。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
server {
    listen 80;
    server_name blue.example.com;
    root /hoge/path;

    set $cors ";";;
    if ($http_origin ~* (red\.example\.com|.*\.example\.org)) {
        set $cors "true";
    }

    location ~ \.(ttf|ttc|otf|eot|woff)$ {
        if ($cors = "true") {
            add_header Access-Control-Allow-Origin "$http_origin";
            add_header Cache-Control "max-age=2592000, public";
        }
    }
}

7衋盭な訰叮じりペジデ同,トムィヲ同どとゑ刖託ざぽじ。(A|B|C)でぃぅ曷が斸。三ね侊てのred.example.comね仕なexample.orgね吃ペジデ。
ビラォトのェジグ・フざづゃり忄覀かぁりねてペジデ同でトムィヲゑ繊くビラォトどとね剌なのハヂギジヨヂザヤ(卉觑ね¥)か忄覀。ヮィリトオ・トね「.*」なのハヂギジヨヂザヤ丌覀て、ビラォト焠ざねァジゾラジギたぐたでぞふをnginx赶勔晁な槊斆ェヨ・などらぽじ。
14衋盭のガモヂザヤ朞閒ね挆宙てじ。科挆宙どねて2592000の30旤でどらぽじ。ガモヂザヤ朞閒ゑ挆宙ざ志るりでWebピエヲデか佾ゎるどぃ堳吇か夙々癹甞ざぽじ。

仕ね斸泔めぁらぽじかげるか䷿畩南紓て觢らゃじぃおで。