Error: In this configuration Angular requires Zone.js
Error: In this configuration Angular requires Zone.js
我正在尝试 运行 在内部使用的 Grails 2.3.9 应用程序 Angular 5. 为此,我创建了一个新的 Grails 项目和一个新的 angular 项目 angular-cli (ng new app
)。在此之后我做了这些步骤。
构建angular项目以获取资源包:ng build --prod
复制已经创建的dist文件夹的文件,粘贴到web-app/js/lib
的Grails项目中
在 grails 中创建一个新的控制器和视图来为 angular
提供索引
在index.gsp中我把index.html的内容在 angular 中创建 用 Grails 创建并替换脚本的 src 创建 link 语句指向 js/lib/... 以便 Grails 能够正确地提供这些文件
当我 运行 我的 Grails 应用程序并转到 angular 到 运行 的指定地址时,我得到一个空白页面并且在控制台中出现此错误:
Error: In this configuration Angular requires Zone.js
我尝试复制 Apache 服务器中的 dist 文件夹,一切正常,因此,我认为问题与 ng build --prod
后生成的文件无关。
好的,我明白了,问题是我在 index.gsp
:
中引用 angular 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
我正在尝试 运行 在内部使用的 Grails 2.3.9 应用程序 Angular 5. 为此,我创建了一个新的 Grails 项目和一个新的 angular 项目 angular-cli (ng new app
)。在此之后我做了这些步骤。
构建angular项目以获取资源包:
ng build --prod
复制已经创建的dist文件夹的文件,粘贴到web-app/js/lib
的Grails项目中
在 grails 中创建一个新的控制器和视图来为 angular
提供索引
在index.gsp中我把index.html的内容在 angular 中创建 用 Grails 创建并替换脚本的 src 创建 link 语句指向 js/lib/... 以便 Grails 能够正确地提供这些文件
当我 运行 我的 Grails 应用程序并转到 angular 到 运行 的指定地址时,我得到一个空白页面并且在控制台中出现此错误:
Error: In this configuration Angular requires Zone.js
我尝试复制 Apache 服务器中的 dist 文件夹,一切正常,因此,我认为问题与 ng build --prod
后生成的文件无关。
好的,我明白了,问题是我在 index.gsp
:
走错了
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