首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有可能在没有web服务器的情况下使用ng-include?

有没有可能在没有web服务器的情况下使用ng-include?
EN

Stack Overflow用户
提问于 2013-01-20 08:11:24
回答 5查看 22.8K关注 0票数 16

我正在运行一个AngularJS应用程序,它只包含一个文件

<div ng-include src="'sample.html'"></div>

当在web服务器下运行时,这是可行的。但是,如果web应用程序只是从文件资源管理器(即,不是从web服务器)双击运行,则不会包含该文件

ng-include可以在web服务器之外工作吗?我在Chrome上查看了网络状态,显示OPTIONS on Method和Load cancelled on状态

EN

回答 5

Stack Overflow用户

发布于 2013-01-20 09:13:11

一种解决方法是内联模板:

<script type="text/ng-template" id="sample.html">
  <div>This is my sample template</div>
</script>

Fiddle

这会将您的模板放入Angular的模板缓存中。在处理ng-include指令时,Angular首先检查缓存。

票数 32
EN

Stack Overflow用户

发布于 2013-01-20 18:46:52

这个问题是由file://协议引起的。大多数情况下,当从file://提供文件时,所有浏览器都不允许XHR请求。这就是AJAX请求失败的原因。和ng-include使用它们来下载文件。

您可以使用--allow-file-access-from-files参数启动Chrome来禁用对file://的检查。

如果文件位于同一文件夹中,则FireFox应加载这些文件(有关详细信息,请查看this )。

但我个人更喜欢启动最简单的NodeJS脚本来服务文件,这可以在angular-seed项目中找到。它只需要node二进制文件,给人一种普通web服务器的感觉。

票数 22
EN

Stack Overflow用户

发布于 2015-02-05 05:26:38

我遇到了类似的问题,我通过运行一个简单的nodejs服务器来提供静态文件-- http-server,从而解决了这个问题。确保已安装nodejs,然后:

安装:

$ sudo npm install http-server -g

然后从您的项目目录:

$ http-server

现在您可以从以下位置访问您的文件:

localhost:8080/whatever-file-you-have-in-your-directory.html

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14420337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档