初学angularjs,在使用指令的时候用到了templateUrl,直接使用该指令的话在chrome上是会报Cross Origin Request Script(CORS)错误,可能是基于安全考虑吧,不能直接加载file//文件。在ff下应该是可以的。
想问一下,在chrome下,有没有方式不通过搭建一个本地的服务器来解决这个问题,请各位大牛指教。
天蓬老师2017-05-15 16:52:03
直接预编译模板,缓存到 $templateCache 里去,这样可以把预编译后的模板作为脚本直接加载到网页内部,没有跨域的问题。开发过程中可以使用自动预编译(你可以搜索一下相关的解决方案,比如 grunt + ngTemplate 等等)。
如果你是第一次接触预编译模板这个概念,可能会摸不着头脑,别着急,起初我也查了好些资料才转过这个弯明白其中的原理。不过我现在正在忙,没时间细细讲解,建议你先就着预编译模板这五个字好好搜索一下相关的资料。等我有空再补细节吧。
曾经蜡笔没有小新2017-05-15 16:52:03
http://stackoverflow.com/questions/16251420/couldnt-load-template-using-templateurl-in-angularjs
给我你的怀抱2017-05-15 16:52:03
可以快捷方式打开chrome 的时候加上 --disable-web-security参数。。。就是右键属性中改下
变成"C:UsersAdministratorAppDataLocalGoogleChrome SxSApplicationchrome.exe" --disable-web-security
不过会影响chrome的正常使用,你可以用canary作这个。
或者,用grunt,用connect 加 livereload 插件,开发爽爽的,connect相当于做了一个服务器,livereload可以自动更新刷新浏览器