6

これはおそらく簡単な質問ですが、私はどこにも簡単な答えを見つけることができません。

私のウェブサイトはAmazonEC2でホストされています。

Amazon Cloudfrontを利用して、サイトでの画像、Javascript、CSSの読み込みを高速化したいと考えています。

私のサイト全体で、相対URLを使用して、EC2サーバーにある画像、Javascript、CSSを指しています。

では、Cloudfrontを利用するには、すべての相対URLをCloudfrontを指す絶対URLに変更する必要がありますか、それともAmazon / EC2 / Cloudfrontによって自動的に処理されますか?または、質問をするためのより良い方法は、すべてのURLを相対URLのままにして、Cloudfrontのすべての利点を引き続き利用できるかどうかです。

4

2 に答える 2

1

簡単な答えはノーです。相対 URL は CloudFront で期待どおりに機能しません。Gio Huntが言及した場合を除いて、ページが CSS ファイルをロードすると、CSS ファイル自体内の相対 URL は CloudFront に解決されますが、これはおそらくそうではありませんあなたの場合はあまり役に立ちません。

私が過去に行ったことと非常によく一致するSASSを使用したソリューションについては、この回答を参照してください。

  • SASS を使用しました - http://sass-lang.com
  • $image_path: "/images/"; のようなコンテンツを持つ cdn.scss という mixin があります。
  • その mixin を sass スタイル @import "cdn.scss" でインポートします。
  • 画像パスを次のように更新します: background:url($image_path + "image.png");
  • 展開時に、mixin.scss の $image_path 変数を変更してから、sass を再実行します。

基本的に、すべてのページが尊重する変数を作成して、CDN (CloudFront) ベース URL を使用するように CSS を再生成します。これを行う際の難易度は、変更する必要がある参照とファイルの数によって異なりますが、単純な検索と相対パスの置換は非常に簡単に実行できます。

幸運を。

于 2013-03-21T05:23:09.770 に答える
0

すべてをそのままにしたい場合は、サイトをカスタムオリジンとして設定するクラウドフロントを介してすべてを渡すことができます。サイトがほとんど静的である場合、これは非常にうまく機能します。

すべてを送信せずにクラウドフロントを利用したい場合は、相対 URL を絶対 URL に更新する必要があります。CSS ファイルがクラウドフロント経由で提供されている限り、CSS ファイルは相対 URL を保持できます。

于 2013-03-19T15:34:58.400 に答える