Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有AngularJS及其RouteProvider的纯本地单页应用程序_Javascript_Html_Google Chrome_Angularjs_Chromium - Fatal编程技术网

Javascript 带有AngularJS及其RouteProvider的纯本地单页应用程序

Javascript 带有AngularJS及其RouteProvider的纯本地单页应用程序,javascript,html,google-chrome,angularjs,chromium,Javascript,Html,Google Chrome,Angularjs,Chromium,我目前正在尝试构建一个运行在闪存驱动器上的“web应用程序”,因此没有任何其他环境需要启动带有一些启动选项和闪存驱动器上index.html文件路径的chrome 当使用file://协议而不是通过web服务器加载文件时,我很难让angularJS很好地播放 通过将html5模式设置为true,我可以加载本地资源(如视频),但我目前无法使用路由提供程序 以下是我所拥有的: var testApp=angular.module(“testApp”、“angular-下划线”、“ngRoute”、“

我目前正在尝试构建一个运行在闪存驱动器上的“web应用程序”,因此没有任何其他环境需要启动带有一些启动选项和闪存驱动器上index.html文件路径的chrome

当使用file://协议而不是通过web服务器加载文件时,我很难让angularJS很好地播放

通过将html5模式设置为true,我可以加载本地资源(如视频),但我目前无法使用路由提供程序

以下是我所拥有的: var testApp=angular.module(“testApp”、“angular-下划线”、“ngRoute”、“com.2fdevs.videogular”)

每当我通过双击文件在Chrome中加载index.html文件时,url都以“file://”开头。当我使用基本选项“允许从文件访问文件”通过命令行启动时,也会发生这种情况

如何使routeProvider在文件://中按预期工作?除非我在index.html中将以下内容添加到我的head标记中,否则它目前甚至无法识别“否则”路由

<base href="/index.html">
在Chrome的URL字段中。无法加载所有其他资源。 下面是我看到的一个控制器组合的错误示例

GET file:///index.html net::ERR_FILE_NOT_FOUND 

非常感谢!(我知道,如果我愿意使用Web服务器,我的所有问题都会消失,但目前不允许我参与此项目)

通过使用动态
base
标记,可以让事情的角度方面发挥作用:

<script>document.write('<base href="' + document.location + '" />');</script>
我还发现HTML5路由似乎不适用于
文件://
,因此必须禁用它


我已经构建了一个,下载时也可以工作,至少在一个有Chrome的Mac上。我还制作了一个,显示了当下载到文件时,您可以在路径之间导航,如
#/
#/internal

我是。为什么?这有区别吗?:)angular文档称“$route用于深度链接URL”。文件:协议不是url;没有查询字符串、片段等。简言之,如果不修补angular代码,它可能无法工作……有人说“angular是一个客户端JS框架,因此它不需要web服务器。”。希望真的有办法!:)大多数angular在没有服务器的情况下确实可以正常工作。在某种程度上,我以前没有注意到,路由确实微妙地依赖于服务器,因为您已经发现了一些原因。可能还有其他障碍,如本地存储/cookie、历史记录和CSP问题。查看文件时,不要期望大多数浏览器都能提供完整的功能;当IE5+6做到这一点时,每个人都抱怨最多的是。。。在一个html文件中创建一个可分发的应用程序是很困难的。我可能错了,但如果没有正确的重定向,您想如何使用HTML5模式?我已经添加了“--允许从文件访问文件”是否还有其他安全设置我应该设置?我忽略了这一点:我的解决方案假设没有更改安全设置。假设您有“-allow file access from files”,并且它允许对文件系统的Ajax请求,那么实际上您不需要在JS中使用模板。在任何情况下,您都不需要更改任何其他安全设置。加载html5视频等资源的业务需求已经存在,因此需要进行该安全设置。但很高兴知道我不需要打开/关闭任何其他功能。我很想知道您是否需要html5视频的“允许从文件访问文件”选项。其他资源,比如
img
标签中的图像,我认为可以很好地注入页面,即使是在
文件://
上。我可能没有使用——允许从html5视频文件访问文件。一旦我发现了,我会回来报到
GET file:///index.html net::ERR_FILE_NOT_FOUND 
<script>document.write('<base href="' + document.location + '" />');</script>
app.run(function($templateCache) {
  $templateCache.put('views/MainView.html', 'In the MainView partial <strong>{{message}}</strong>');
});