CloudFlareにキャッシュされるファイルとは?

基本無料で提供されているCDNサービスCloudFlareですが
初期設定だとキャッシュするファイルが限定されています。

CloudFlareのサポートページに対応キャッシュファイルの一覧があります。

https://support.cloudflare.com/hc/en-us/articles/200172516-Which-file-extensions-does-CloudFlare-cache-for-static-content-

Which file extensions does CloudFlare cache for static content?

キャッシュされるファイルの種類

初期設定では、以下の36種類が対応しています。

  • 画像系
    • bmp, tif/tiff, pict, jpg/jpeg, ps, eps, gif, svg, svgz, ico, png, webp
  • テキスト系
    • css, js, ejs
  • ドキュメントファイル等
    • doc, docx, xls, xlsx, csv, ppt, pptx, pdf
  • その他
    • ttf, woff, woff2, eot, otf, swf, pls, mid/midi, class, jar

非対応ファイルをキャッシュさせるには?

実は、非対応のファイルでもキャッシュさせる方法はあります。
それは、ファイルのURLの最後に、?(適当な文字列)=(.対応している拡張子)をつけるだけです。

例えば、www.example.com/a.zipをキャッシュさせたいのであれば
www.example.com/a.zip?a=.jsという風になります。

すでにクエリパラメーターが設定されている、という場合であれば?を&に置き換え
www.example.com/a.zip?x=a&a=.jsといった感じにします。

それ以外の方法

CloudFlareのPage Rulesにキャッシュルールを追加する方法もあります。

Page RulesからCreate Page Ruleを選び、www.example.com以下がすべてキャッシュされるよう
URL matchsをwww.example.com/*にCache LevelをCache Everythingに設定します。

Cache LevelをCache Everythingにする

Cache LevelをCache Everythingにするとすべてのファイルがキャッシュされる。

URLの最後に文字列を加えるという方法はやや邪道な気がしますが、簡単に使えます。
一方ですべてをキャッシュさせる設定は、一度設定するだけで済みます。
場合によって適宜使い分けるといいかもしれません。