Angularjs 是否可以在没有web服务器的情况下使用ng include?
我正在运行一个AngularJS应用程序,它只包含一个文件Angularjs 是否可以在没有web服务器的情况下使用ng include?,angularjs,Angularjs,我正在运行一个AngularJS应用程序,它只包含一个文件 <div ng-include src="'sample.html'"></div> 当在web服务器下运行时,它可以工作。但是,如果web应用程序仅通过从文件资源管理器(即,不是从web服务器)双击来运行,则不包括该文件 ng是否包括web服务器之外的工作?我在Chrome上检查了网络状态,它在方法上显示了选项,在状态上显示了加载已取消一个解决方法是内联模板: <script type="text/
<div ng-include src="'sample.html'"></div>
当在web服务器下运行时,它可以工作。但是,如果web应用程序仅通过从文件资源管理器(即,不是从web服务器)双击来运行,则不包括该文件
ng是否包括web服务器之外的工作?我在Chrome上检查了网络状态,它在方法上显示了选项,在状态上显示了加载已取消一个解决方法是内联模板:
<script type="text/ng-template" id="sample.html">
<div>This is my sample template</div>
</script>
这是我的示例模板
这会将模板放入Angular的模板缓存中。处理ng include指令时,Angular首先检查缓存。问题是由于
文件://
协议造成的。当文件从file://
提供时,大多数浏览器都不允许XHR请求。这就是AJAX请求失败的原因。和ng include
使用它们下载文件
您可以使用--允许从文件访问文件参数启动Chrome,以禁用对文件的检查://
如果文件在同一个文件夹中,FireFox应该加载这些文件(查看更多信息)
但我个人更喜欢启动最简单的NodeJS脚本来提供文件,这可以在项目中找到。它只需要节点
二进制文件,给人一种普通web服务器的感觉。您可以使用Grunt和来预编译模板以及角度代码。我遇到了一个类似的问题,我通过运行一个简单的nodejs服务器来提供静态文件-。确保已安装,然后:
安装:
$sudo npm安装http服务器-g
然后从项目目录:
$http服务器
现在,您可以从以下位置访问文件:
localhost:8080/目录中的任何文件。html
在xampp上使用虚拟主机是最好的解决方案,并提供自定义名称,如yourProject.dev
更新C:\xampp\apache\conf\extra\httpd vhosts中的httpd vhosts文件
<VirtualHost *:80>
ServerName yourProject.dev
ServerAlias www.yourProject.dev yourProject.com www.yourProject.com
DocumentRoot "C:\Users\customFolder/yourProject"
<Directory "C:\Users\customFolder/yourProject">
DirectoryIndex index.html index.php
ServerSignature Off
Options Indexes FollowSymLinks IncludesNoExec
AllowOverride All
Allow from all
Require all granted
</Directory>
</VirtualHost>
ServerName yourProject.dev
ServerAlias www.yourProject.dev yourProject.com www.yourProject.com
DocumentRoot“C:\Users\customFolder/yourProject”
DirectoryIndex.html index.php
服务器签名关闭
选项索引以下符号链接包括noexec
允许超越所有
通融
要求所有授权
然后将主机文件更新为yourProject.dev
127.0.0.1
在Windows中:c:\Windows\System32\Drivers\etc\hosts
<VirtualHost *:80>
ServerName yourProject.dev
ServerAlias www.yourProject.dev yourProject.com www.yourProject.com
DocumentRoot "C:\Users\customFolder/yourProject"
<Directory "C:\Users\customFolder/yourProject">
DirectoryIndex index.html index.php
ServerSignature Off
Options Indexes FollowSymLinks IncludesNoExec
AllowOverride All
Allow from all
Require all granted
</Directory>
</VirtualHost>
在Mac中:/private/etc/hosts
<VirtualHost *:80>
ServerName yourProject.dev
ServerAlias www.yourProject.dev yourProject.com www.yourProject.com
DocumentRoot "C:\Users\customFolder/yourProject"
<Directory "C:\Users\customFolder/yourProject">
DirectoryIndex index.html index.php
ServerSignature Off
Options Indexes FollowSymLinks IncludesNoExec
AllowOverride All
Allow from all
Require all granted
</Directory>
</VirtualHost>
别忘了让您的xampp/wampp休息一下我不认为这是关于web服务器的。我认为这更像是跨源问题。脚本是否可以有一个src属性并指向一个外部html文件?@Vishnu,不。请看——没有src
参数。@MarkRajcok您的答案是我最近几天搜索的:)。非常感谢你!注意:我相信这必须在元素中包含ng应用程序
。这确实是真的!我可以在Firefox中成功运行网页,但不能在Chrome中运行!非常感谢您的解释。xampp是一个web服务器。这里提出的问题是不要使用任何web服务器。