0

phpインスタンスで利用可能なビルド番号を取得しようとしています。静的アセット(css、js)の一種の「キャッシュバスター」として使用します。実行時に取得する方法はありますか?そうでない場合は、ビルド時にインストール後のスクリプトで取得する方法はありますか?

4

1 に答える 1

0

私はあなたがこれを行うことができるいくつかの方法を見ます。

  1. コードディレクトリに/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. 私が他のプロジェクトで使用したもう1つのアプローチは、ビルドのタイムスタンプのみを含む.versionファイルをポストインストールで作成し、そのファイルをbuild_versionで参照して、キャッシュバスターとして使用することです。このアプローチの問題は、postinstall1つのインスタンスを超えてスケ​​ーリングすると作成されるため、インスタンスごとに異なるタイムスタンプが作成される可能性が高く、これは希望どおりではないと思います。

    $ date'+%s'> /home/dotcloud/.version

スケーリングすると機能し、よりまっすぐ進むので、私は#1に固執します。

お役に立てば幸いです。

于 2012-05-23T12:53:07.323 に答える