我试图运行在Angular 5中使用的Grails 2.3.9应用程序。为此我创建了一个新的Grails项目和一个带有 angular-cli 的新角度项目({{ 1}})。在此之后我做了这些步骤。
构建角度项目以获取资源包:ng new app
复制已创建的dist文件夹文件并将其粘贴到 web-app / js / lib
在grails中创建一个新的Controller和视图,以提供angular
在 index.gsp 中,我添加了在角度构建中创建的 index.html 的内容,并用Grails创建脚本的src替换链接语句指向js / lib / ...以便Grails能够正确地提供这些文件
当我运行我的Grails应用程序并转到指定的角度运行时,我得到一个空白页面并在控制台中出现此错误:
ng build --prod
我尝试在Apache服务器中复制dist文件夹,一切正常,所以,我不认为问题与Error: In this configuration Angular requires Zone.js
之后生成的文件有关。
答案 0 :(得分:3)
好的,我弄明白了,问题是我引用index.gsp
中的角度js资源的方式:
错误的方式
index.gsp中
<html>
<head></head>
<body>
<app-root></app-root>
<script src="${createLink(uri:'js/lib/inline.bundle.js')}"</script>
<script src="${createLink(uri:'js/lib/polyfills.bundle.js')}"</script>
<script src="${createLink(uri:'js/lib/main.bundle.js')}"</script>
</body>
</html>
正确的方式
ApplicationResources.groovy
modules = {
...
angular{
resource url:"js/lib/styles.bundle.css", nominify:true, disposition: 'head'
resource url:"js/lib/inline.bundle.js", nominify:true
resource url:"js/lib/polyfills.bundle.js", nominify:true
resource url:"js/lib/main.bundle.js", nominify:true
}
}
index.gsp中
<html>
<head>
...
<r:require modules="angular"/>
<r:layoutResources/>
</head>
<body>
<app-root></app-root>
<r:layoutResources/>
</body>
</html>
在grails 2中添加资源的正确方法是here