2014-01-16 142 views
0

收到此錯誤`語法錯誤:意外標記<`

SyntaxError: Unexpected token < 

每當我們添加

$locationProvider.html5Mode(true); 

出於某種原因,它似乎開始解析資源JS

// App configuration 
app.config(['$routeProvider', '$locationProvider', 
    function($routeProvider, $locationProvider) { 

    $routeProvider.when('/', { 
     templateUrl: 'partials/home.html' 
    }); 

    $locationProvider.html5Mode(true); 
    }] 
); 
+0

你確定partials/home.html存在嗎? – putvande

+0

你的服務器應該提供靜態資源:http://stackoverflow.com/questions/21067717/angularjs-and-express-routing-issue/21067807#21067807 –

+0

是的,錯誤消失了,當我們註釋掉'html5Mode'行和該應用程序完美工作,但與hashbangs。 –

回答

1

的修復,我建議你檢查你的服務器端代碼,你需要添加所有靜態文件的任何其他途徑之前宣佈。

還要確保爲靜態文件添加的路徑是正確的。

+0

那麼,當我們關閉html5mode時,錯誤消失 –

+1

我們正在設置'app.use(express.static(資產));'首先在express服務器 –

1

我曾經有過這個問題。原因是在腳本文件源路徑(src)的開始處缺少斜槓(「/」)。在您的index.html,腳本資源必須與此類似(注意每個路徑的開始斜線):

<script type="text/javascript" src="/js/angular.js"></script> 
<script type="text/javascript" src="/js/angular-route.js"></script> 
<script type="text/javascript" src="/js/app.js"></script> 

在索引文件,它也有必要把這個頭部分:

<base href="/" /> 

在app.config部分,每個templateUrl必須以斜槓(「/」)開頭

如果您在本地主機(我使用XAMPP進行測試)中測試,則也需要創建虛擬主機。

相關問題