phpインスタンスで利用可能なビルド番号を取得しようとしています。静的アセット(css、js)の一種の「キャッシュバスター」として使用します。実行時に取得する方法はありますか?そうでない場合は、ビルド時にインストール後のスクリプトで取得する方法はありますか?
質問する
47 次
1 に答える
0
私はあなたがこれを行うことができるいくつかの方法を見ます。
- コードディレクトリに
/home/dotcloud/
はビルドバージョンへのシンボリックリンクがあるので、たとえば私のコードディレクトリはを指しgit-16ae997
ます。スクリプトで、postinstall
そのディレクトリの名前を取得して一時ファイルや環境変数に保存するか、構成スクリプトの1つに挿入すると、プログラムから参照できます。
これをpostinstall
スクリプトに入れると、BUILD_VERSION
変数がに追加され、シェルまたは他の言語.profile
から利用できるようになります。変更を加えた後、確実に設定されるように、$BUILD_VERSION
再ソースする必要がある場合があります。.profile
$ echo "export BUILD_VERSION=`readlink /home/dotcloud/code`" >> /home/dotcloud/.profile
$ echo $BUILD_VERSION
PHPを使用すると、次の変数を使用して実行時に取得できるはずです。
$_ENV["BUILD_VERSION"]
私が他のプロジェクトで使用したもう1つのアプローチは、ビルドのタイムスタンプのみを含む.versionファイルをポストインストールで作成し、そのファイルをbuild_versionで参照して、キャッシュバスターとして使用することです。このアプローチの問題は、
postinstall
1つのインスタンスを超えてスケーリングすると作成されるため、インスタンスごとに異なるタイムスタンプが作成される可能性が高く、これは希望どおりではないと思います。$ date'+%s'> /home/dotcloud/.version
スケーリングすると機能し、よりまっすぐ進むので、私は#1に固執します。
お役に立てば幸いです。
于 2012-05-23T12:53:07.323 に答える