Angular.js使用templateUrl不能访问的本地的解决办法

在使用Angular.js的时候(这里使用的Chrome浏览器),配置路由时templateUrl无法访问本地文件,报错:

angular.js:10695 XMLHttpRequest cannot load file:///D:/Angular/demo/Angular16-1.html. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

看下错误代码,大概意思协议方式只支持http, data, chrome, chrome-extension, https这些方式.不支持file也就是文件的方式.
看下代码:

a5_7.config(["$routeProvider",function($routeProvider){
    $routeProvider
            .when("/",{
                controller:"c5_7_1",
                templateUrl:"Angular16-1.html"
            })
            .when("/view/:id",{
                controller:"c5_7_2",
                templateUrl:"Angular16-2.html",
                publicAccess:true
            })
            .otherwise({
                redirectTo:"/"
            });
}]);

解决办法

1.修改Chrome快捷方式的启动配置

(1)在开始菜单输入Chrome,可以看到Chrome的快捷方式图标,右键属性打开快捷方式的属性界面.


Angular.js使用templateUrl不能访问的本地的解决办法_第1张图片
Chrome属性

(2)在快捷方式-目标输入框后加上--allow-file-access-from-files,注意--前面要加空格.


Angular.js使用templateUrl不能访问的本地的解决办法_第2张图片
修改后

(3)然后重新在开始菜单搜索Chrome,可以看到多出了一个Chrome图标,把修改过的快捷方式发送到桌面,使用修改过的Chrome图标启动Chrome,重新打开页面,然后就可以访问本地file了.
然后有同学就说了,我不想每次都使用哪个修改过的快捷方式打开Chrome,这样好麻烦啊,我就想右键文件直接打开的时候就ok.既然这样的话,继续往下看.
2.修改系统默认的Chrome启动方式

(1)按下Win+R,输入regedit,进入注册表.


Angular.js使用templateUrl不能访问的本地的解决办法_第3张图片
进入注册表

(2)分别找到[HKEY_CLASSES_ROOT下的ChromeHTML,http,https,在 -- "%1"的前面chrome.exe"的后面添加--allow-file-access-from-files,注意空格.


Angular.js使用templateUrl不能访问的本地的解决办法_第4张图片
修改后

(3)然后就算你右键直接打开,Angular.js的templateUrl也可以访问本地文件了
3.直接放在使用http的服务打开

可以使用tomcat或者http-server等,这里就不解释了.

你可能感兴趣的:(Angular.js使用templateUrl不能访问的本地的解决办法)