我正在运行一个AngularJS应用程序,它只包含一个文件
<div ng-include src="'sample.html'"></div>
当在web服务器下运行时,这是可行的。但是,如果web应用程序只是从文件资源管理器(即,不是从web服务器)双击运行,则不会包含该文件
ng-include可以在web服务器之外工作吗?我在Chrome上查看了网络状态,显示OPTIONS on Method和Load cancelled on状态
发布于 2013-01-20 09:13:11
一种解决方法是内联模板:
<script type="text/ng-template" id="sample.html">
<div>This is my sample template</div>
</script>
这会将您的模板放入Angular的模板缓存中。在处理ng-include指令时,Angular首先检查缓存。
发布于 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服务器的感觉。
发布于 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
https://stackoverflow.com/questions/14420337
复制相似问题