Grails资产管道无法加载angular部分模板。

6
我正在使用 Grails 2.3.x asset-pipeline:1.6.1 插件和 angular-ui-bootstrap。其中一个组件 alert.js 尝试加载 /template/alert/alert.html,但是这会导致 404 错误。
我尝试包含 grails.assets.includes=[*/.html],但没有帮助。
有什么解决方法吗?有没有办法让 asset-pipeline 包含部分模板?

2
你可以尝试在https://github.com/bertramdev/asset-pipeline/issues?state=open上询问相关问题。 - uladzimir
1
你找到解决这个问题的方法了吗?目前我也面临着同样的问题。 - kuldarim
1
@Riku 我在这个实现中使用了angular-ui-bootstrap。我改用了“angular-bootstrap”,它可以正常工作。有3个类似的库 - ui-bootstrap,angular-ui-bootstrap,angular-bootstrap。如果您使用bootstrap,请确保使用“angular-bootstrap”。另一个(不太好的)解决方案是将文件移动到/webapp目录中。我的自定义部分是从/webapp目录提供的。 - vasya10
1
@vasya10 我已经成功地通过添加//= require folder_name来包含assets文件夹中的文件。我将folder_name文件夹放置在grails-app/assets/javascripts目录下。现在它像魔术般地运转。 - kuldarim
3个回答

2
感谢您的关于AngularJS和Grails的博客,这为我启发了这个话题。
关于partials,我假设assets目录不是放置它们的正确位置,因为在生产模式下它们会被合并和压缩。
相反,我使用GSP模板作为AngularJS的partials。例如,我有: views/partials/login.gsp
<div>Hello World!</div>

conf/UrlMappings.groovy

static mappings = {
  ...
  '/partials/login'(view:'/partials/_login')
}

grails-app/assets/javascript/

...
templateUrl: 'partials/login',
...

优势:您甚至可以在局部页面中使用脚本和标签库。

与直接使用GSP相比,另一种选择是James Kleeh在此线程中的方法

最好的祝福, Björn


2
我尝试将/partials目录放置在/web-app下,它变成了:
/web-app/partials/content.html
我不需要烦恼asset-pipeline,它只是有效的!
我使用的版本如下:
Grails: 2.4.2 compile ":asset-pipeline:1.8.11"
希望这能帮助升级Grails版本的任何人。

2

模板是否位于资产中,如果是,请记住资产内的第一级文件夹被扁平化,因此您可能需要再嵌套一个级别或调整路径来嵌套您的模板。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接