我们正在将应用从Play 1.2.7迁移到Play 2.3.2.
因为我们之前已将大部分Play 1.2.7应用程序从Backbone迁移到AngularJS,所以我们在1.2.7中最终得到了两个这样的静态资产目录:
/public -- contains Backbone scripts/templates
/platform/app -- contains AngularJS scripts/templates
Run Code Online (Sandbox Code Playgroud)
我试图在不破坏1.2.7代码的情况下并行进行迁移,所以我有类似的东西,所以我可以在/ app中重写Java控制器,并使用现有的JavaScript/HTML资产:
~/play1/app
~/play1/public
~/play1/platform/app
Run Code Online (Sandbox Code Playgroud)
和
~/play2/app
~/play2/public (symlink to ../../play1/public)
~/play2/platform (symlink to ../../play1/platform)
Run Code Online (Sandbox Code Playgroud)
当我执行激活器运行时,即使我有一个路由,也无法访问/ play2/platform中的文件.调查一下,这些文件都没有被复制到〜/ play2/target/public中,所以controller.Assets找不到它们.Play/SBT中有没有办法做到这一点?
我假设我可以以某种方式让脚本在我为构建分发时做副本(我需要研究一下),但我希望这只能用于交互式开发.
这可能是补救措施,但我是Play 2.x,Scala和SBT的新手,所以我还没弄清楚.
谢谢,
查尔斯
该播放2.3迁移指南在SBT-网络节讨论这一点.
sbt-web的细微差别在于所有资产都是从公共文件夹提供的.因此,如果您以前有资产驻留在公用文件夹之外,即您使用playAssetsDirectories设置,如下例所示:
playAssetsDirectories <+ = baseDirectory /"foo"...那么你现在应该使用以下内容:
Assets中的unmanagedResourceDirectories + = baseDirectory.value /"foo"
当我在Play Java项目的根目录中添加build.sbt时,这对我有用:
unmanagedResourceDirectories in Assets += baseDirectory.value / "platform/app"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1224 次 |
| 最近记录: |