Java Heroku中的Greenscript
我对Heroku中的Greenscript(1.2.6l)使用Play1.2.3forJava有一个奇怪的问题 在本地,使用Play启动器或Foreman start,在两种模式(DEV和PROD)下,Greenscript都可以正常工作,压缩文件并加载css/javascript 在Heroku,我得到了这个: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
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命令中),并压缩名为not以min.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,因此您的解决方案并不真正适用。无论如何,谢谢你的信息。