0

Play 1.2.3 for Java を使用している Heroku の Greenscript (1.2.6l) で奇妙な問題が発生しています。

ローカルでは、Play ランチャーまたは Foreman スタートを使用して、両方のモード (DEV と PROD) で Greenscript が正常に動作し、ファイルを圧縮して css/javascript をロードします。

Heroku では、次のようになります。

2011-11-28T19:18:34+00:00 heroku[router]: GET XXXXXX.herokuapp.com/public/gs/b097436f-9941-4d07-98cf-31bd574e6351.js dyno=web.1 queue=0 wait=0ms service=26ms status=404 bytes=4222

ご覧のとおり、圧縮された js ファイルを読み込もうとすると 404 エラーが発生します。このエラーは、Greenscript がファイル システムまたはファイルのインメモリ ストレージで動作するように設定すると発生します。

誰かが同様の問題を抱えていて、解決策を知っていますか? または、そうでない場合、だれか Greenscript の代替案を提案できますか?

4

3 に答える 3

1

私はプラグインを使用していましたが、かなりクールですが、開発モードでのページの読み込みがかなり遅くなります。ケーキのアイシングは1.2.6kのバグであり、キャッシュがクリアされていました。

js / cssファイルへの参照が表示されない場合は、htmlソースコードを確認してください。同じ問題です。

私は現在、warファイルを解凍し、そこにあるべきではないものをすべて削除し(すべてが現在のplay warコマンドに含まれる)、min.jsで終わらない名前のjavascriptファイルを圧縮するカスタムスクリプトantを使用しています。

このようにコーディングすると、JavaScriptは表示されますが、本番環境では圧縮されます。

私はcssにlessを使用していますが、そのためにlesscコンパイラを手動で実行しています。結局あまり変わらないので、あまり気になりません。

スクリプトターゲットは次のようになります

<target name="minimize-war" depends="" description="removes not needed stuff from war file">
    <delete dir="${buildDir}/tmp"/>
    <unzip src="${buildDir}/myappname-war.war" dest="${buildDir}/tmp"/>
    <foreach target="minimize" param="filename">
            <fileset dir="${buildDir}/tmp/WEB-INF/application/public/javascripts" >
                    <include name="**/*.js"/>
                    <exclude name="**/*.min.js"/>
            </fileset>
            <param name="type" value="js"/>
    </foreach>
    <foreach target="minimize" param="filename">
            <fileset dir="${buildDir}/tmp/WEB-INF/application/public/stylesheets" >
                    <include name="**/*.css"/>
            </fileset>
            <param name="type" value="css"/>
    </foreach>
    <delete dir="${buildDir}/tmp/WEB-INF/application/ant-lib"/>
    <delete dir="${buildDir}/tmp/WEB-INF/application/docs"/>
    <delete dir="${buildDir}/tmp/WEB-INF/application/eclipse"/>
    <delete dir="${buildDir}/tmp/WEB-INF/application/liquibase"/>
    <delete dir="${buildDir}/tmp/WEB-INF/application/icon-lib"/>
    <delete dir="${buildDir}/tmp/WEB-INF/application/test"/>
    <delete dir="${buildDir}/tmp/WEB-INF/application/test-result"/>
    <delete><fileset dir="${buildDir}/tmp/WEB-INF/application" includes="*.*"></fileset></delete>
    <delete file="${buildDir}/myappname-war.war"/>
    <zip destfile="${buildDir}/myappname-war.war" basedir="${buildDir}/tmp"/>
</target>

<target name="minimize">
    <echo>Running compress for type ${type} on file ${filename} </echo>
    <java dir="${buildDir}/tmp/WEB-INF/application/public/javascripts" jar="${basedir}/ant-lib/yuicompressor-2.4.6.jar" fork="true">
            <arg value="--charset" />
            <arg value="UTF-8" />
            <arg line="--type ${type} -o ${filename} ${filename}" />
    </java>
</target>
于 2011-11-29T17:31:18.107 に答える
1

クラスターで実行している場合、問題が発生します。チェックアウトhttps://github.com/greenlaw110/greenscript/issues/30

于 2012-01-17T23:29:16.257 に答える
0

いくつかのテストの後、Heroku で失敗する現在のバージョン (1.2.6m) までの Greenscript に問題があるようです。

私は回避策 (Play のプレス プラグイン) を使用しましたが、これはメモリ モードではまだ失敗しますが、ファイル システムを使用して動作します。Heroku を使用していて問題が発生している場合は、Greenscript が修正されるまでの解決策としてこれをお勧めします。

于 2011-11-29T20:00:01.680 に答える