初學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可以自動更新刷新瀏覽器