ノードサイトを高速化しようとすると、サーバー上のすべての静的ファイルをキャッシュするAmazonのCloudFront CDNを設定しました。サブドメインのエイリアスをsrc = "/ mysite.css"と書くのではなく、src = "https://cache.mysite.com/mysite.css"と書くことができます。クラウド、私のサーバーの代わりに。環境に応じてクラウドへの相対パスを切り替えます。Node.js
私が解決しようとしている問題は、将来私のサイトをさらに開発してテストすることが非常に難しくなるため、すべての静的ファイルをクラウドに向けてハードコードしたくないということです。たとえば、ローカルでcssファイルを変更してローカルでテストしようとすると、cssファイルへのリンクはローカルコピーではなくクラウドに送られます。
私は条件によって環境にURLを書き換える方法を考えようとしていました。変数を設定するためにENVファイルを使用する方法はありますか?これは、相対URLの前にキャッシュURLを挿入するために使用されます。
のようなモジュールを使用することができますし、あなただけのすべての相対パスを使用することができます。 –
私は当初考えていたと思っていましたが、NodeはCloudFrontで動作しません。 CloudFrontは、JS、画像、CSSなどの静的ファイルのみを配信します。 –
これは正しくありません。静的または動的な任意のサイトをCloudFrontの後ろに配置することができます。パスパターンを使用してCloudFrontに静的ストレージ(たとえばS3)に行くパスとアプリケーションサーバーに送るパス(サイトのノードコードを実行する)を指定します。私のサイトは '* .css'や' * .png'のような静的なパスパターンを持ち、デフォルトのパターン '*'はアプリケーションに送られ、クッキーとクエリ文字列を転送します。デフォルトでは、バックエンドの潜在的に異なる場所(「起点」)に最大25の宛先(「キャッシュパターン」を含むキャッシュビヘイビア)をすべて持つことができます。 –