繁体   English   中英

角度指令中模板的路径?

[英]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.jshome.js与空白网址,如'/'。
因此,每当您重定向到“/”时,您的应用都不会一次又一次地启动。 你不会得到任何这样的警告。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM