[英]Path for templates in angular directive?
我已经为我的角度应用程序创建了一个指令,在指令中我使用templateUrl来获取模板。
templateUrl: 'templates/searchbox-template.html',
这在我的本地服务器上工作正常,但当我在firebase上托管它时,它会反复发出此警告 -
WARNING: Tried to load angular more than once
此外,页面陷入循环,反复将index.html添加到页面。 如果您从我使用该指令的导航栏转到公司或工作选项卡,您可以在此处查看该应用程序。 我无法弄清楚应该使用什么路径来阻止它。 这是应用程序的结构 -
.
├── app
│ ├── 404.html
│ ├── favicon.ico
│ ├── images
│ ├── index.html
│ ├── robots.txt
│ ├── scripts
│ ├── styles
│ ├── templates
│ └── views
├── bower_components
│ ├── angular
│ ├── angular-mocks
│ ├── angular-route
│ ├── animate.css
│ ├── bootstrap
│ ├── jquery
│ └── jssocials
├── bower.json
├── dist
│ ├── 404.html
│ ├── favicon.ico
│ ├── fonts
│ ├── index.html
│ ├── robots.txt
│ ├── scripts
│ └── styles
├── firebase.json
.
├── app
│ ├── 404.html
│ ├── favicon.ico
│ ├── images
│ ├── index.html
│ ├── robots.txt
│ ├── scripts
│ │ ├── app.js
│ │ ├── controllers
│ │ ├── directives
│ │ └── services
│ ├── styles
│ │ └── main.css
│ ├── templates
│ │ └── searchbox-template.html
│ └── views
│ ├── about.html
│ ├── companiesall.html
│ ├── company.html
│ ├── contact.html
│ ├── jobsall.html
│ └── main.html
如您所见,我的模板位于模板文件夹中。 请帮我解决一下这个。 谢谢。
更新 - 根据这个答案 ,该指令无法找到模板因此一次又一次地加载index.html - 因为 -
.otherwise({
redirectTo: '/'
});
我只需要弄清楚模板的正确路径。
这是firebase.json json文件的内容 -
{
"hosting": {
"public": "dist",
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}
'/'
是否映射到视图main.html
? 如果是这样,听起来您的服务器仅在views
目录下静态提供文件,并且不允许访问templates
目录。 要测试它,请尝试从模板中获取模板并将其放在视图下,然后相应地更改templateUrl
。
正如您所提到的,Angular无法访问/查找目录,因此默认为otherwise
功能,加载main.html
会一次又一次地重新启动问题。
编辑:
如果其他人有这个问题, dist
目录是生产版本并使用$templateCache
从单个文件提供视图,但在将视图合并到一个文件的步骤中, templates
目录没有被考虑在内所以无法找到它。 所以在你的Gruntfile.js
,更改模板的src
以包含其他文件夹,如下所示:
ngtemplates: {
dist: {
options: {
module: 'jobSeekerApp',
htmlmin: '<%= htmlmin.dist.options %>',
usemin: 'scripts/scripts.js'
},
cwd: '<%= yeoman.app %>',
src: ['views/{,*/}*.html', 'templates/{,*/}*.html'],
dest: '.tmp/templateCache.js'
}
},
不要重定向到索引页面。 因为你的应用程序在index.html上运行
因此,无论何时您将重定向到索引页面,应用程序都将重新启动。
而不是使用另一个页面与空白网址并重定向到它。
喜欢 : -
创建一个js作为main.js或home.js与空白网址,如'/'。
因此,每当您重定向到“/”时,您的应用都不会一次又一次地启动。 你不会得到任何这样的警告。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.