2016-07-14 3 views
7

現時点では、複数のサーバーを持つ新しいサーバー環境があるため、laravel elixerのキャッシュ・バスト処理機能は、各サーバーのリポジトリーをダウンロードしてgulpを実行すると機能しません。 .jsファイルと.cssファイルの異なるバージョン。Laravel elixerのバージョン管理(キャッシュ・バスター)複数のサーバー

ロードバランシングは、要求ごとにどちらかのサーバーにユーザーを送信できるという問題です。一部のブラウザはこの問題から免れているようですが、たとえばJMeterを使用して負荷テストを行うとCSSやJSPを正しく読み込むことができません。

コンパイルされたファイルをリポジトリに追加したり、すべてをFTPすることなくビルドを同期させる方法はありますか?

productiosnブランチが更新されるたびに、最新のレポをプルダウンするスクリプトを実行して、展開を自動化しようとしています。

+0

これは機能しませんか?それとも、冗長バージョンをコミットし続ける必要があるということですか? –

+0

これは美しく動作しますが、各サーバーのキャッシュブーストファイル名はそれぞれ異なります – brianlmerritt

+0

laravelを使用して以来、しばらくお待ちしています。あなたのソースSASSは各開発マシンで同じままでなければならず、コンパイルされたCSSをコミットしていないので、違いがあればどうなりますか?または、クラスター化された運用環境でのロードバランサーの問題について話しているので、エンド・ユーザーはロード・バランサーがどのノードにそれを投げかけるかによって、これらのリソースの冗長コピーを取得する必要があります。 –

答えて

4

この問題の唯一の解決策は、コンパイル済みアセットファイルをコミットすることだと思います。

たとえば、私たちはバージョンvendorというフォルダを持っていないので、私はこの解決方法が最初は奇妙であることを発見しました。

しかし、結局のところ、フロントエンドプロジェクトのほとんどは、常にdistフォルダにコンパイル済みのファイルが入っていることがわかりました。

アセットファイルを変更するたびに、パブリックパスのbuildフォルダをコミットする必要があります。

もちろん、ファイルを最小化する前にgulp --productionを作成することを忘れないでください。

+0

ありがとうございます - 私は月曜日に見て戻ってくるだろう:) – brianlmerritt

+0

私はあなたが近いと思うが、デッカーの提案も答えに含める必要があります:) – brianlmerritt

関連する問題