1

Rails 4 アプリのアセットを Cloudfront CDN 経由でホストしようとしています。以前は asset_sync と s3 を使用していましたが、CDN に切り替えたいと考えていました。

Heroku アプリにアクセスすると、すべてのページが生の HTML であることがわかります。JS または CSS のいずれもロードされていません。

コンソールから表示されるエラーは次のとおりです。

コンソール エラーのスクリーンショット: http://i61.tinypic.com/15rxdsj.jpg

http://i61.tinypic.com/15rxdsj.png

また、Cloudfront のオリジン設定でオリジン ドメイン名とオリジン パスを正しく設定したかどうかもわかりません。現在、heroku アプリの URL をオリジン ドメイン名として使用し、「/production/assets」をオリジン パスとして使用しています。

Production.rb ファイル: http://pastebin.com/2dzLpGfE

この 1 週間、Heroku アプリに CSS と JS を表示させようとしましたが、うまくいきませんでした。洞察をいただければ幸いです。前もって感謝します!

4

1 に答える 1

0

Cloudfront への移行は、すべてが S3 から機能している場合に考えられるほど劇的な変化ではありません。結局のところ、Cloudfront は S3 バケットのコンテンツをエッジ ロケーションに配布するだけです。これは、S3 ではなく CDN を探すように Rails に知らせるだけでよいことを意味します。

起こりうることがたくさんあります。オリジンとして S3 バケットを指しているはずの Cloudfront を誤って構成した可能性があります。Cloudfront URL を使用してブラウザーでアセットを確認することにより、そのセットアップをテストする必要があります。要点は、Cloudfront は Rails アプリについて何も知らないはずだということです。

一方、AssetSync を使用して、assetsパスの「下」にある S3 にアセットをプッシュすることもできます。また、ここでconfig.action_controller.asset_host説明されているように構成する必要があります。

于 2015-04-15T05:19:33.200 に答える