Java Heroku中的Greenscript

Java Heroku中的Greenscript,java,heroku,playframework,greenscript,Java,Heroku,Playframework,Greenscript,我对Heroku中的Greenscript(1.2.6l)使用Play1.2.3forJava有一个奇怪的问题 在本地,使用Play启动器或Foreman start,在两种模式(DEV和PROD)下,Greenscript都可以正常工作,压缩文件并加载css/javascript 在Heroku,我得到了这个: 2011-11-28T19:18:34+00:00 heroku[router]: GET XXXXXX.herokuapp.com/public/gs/b097436f-9941-4

我对Heroku中的Greenscript(1.2.6l)使用Play1.2.3forJava有一个奇怪的问题

在本地,使用Play启动器或Foreman start,在两种模式(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提供一个替代方案吗?

我正在使用这个插件,虽然它很酷,但它大大降低了开发模式下页面的加载速度。锦上添花的是导致缓存被清除的错误

检查html源代码,如果你没有看到对js/css文件的引用也是同样的问题

我现在使用一个自定义脚本ant解压war文件,删除所有不应该存在的内容(所有内容都包含在当前的play war命令中),并压缩名为notmin.js结尾的javascript文件

这样,当我编写代码时,我仍然可以看到javascript,但在生产中被压缩

我使用较少的css,但为此我手动运行LESC编译器。毕竟变化不大,所以我不太在意

这就是脚本目标的样子

<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>

在文件${filename}上运行类型${type}的压缩

经过一些测试,Greenscript在当前版本(1.2.6m)之前似乎存在问题,这使得它在Heroku中失败


我使用了一个变通方法(按plugin for Play),它在内存模式下仍然失败,但可以使用文件系统工作。如果你们中的任何人使用Heroku时遇到问题,我建议将此作为解决方案,同时修复Greenscript。

如果您在集群上运行,则会出现问题。结帐

你有没有简单的测试用例/演示,你可以告诉我,这样我就可以自己尝试这个了?@James Ward Request 35314在Heroku(我看到你在那里工作),你应该可以访问代码。同时,我正在检查Press插件,作为一种替代方案(到目前为止是本地的),Heroku中的部署使用Play server,而不是war,因此您的解决方案并不真正适用。无论如何,谢谢你的信息。