AngularJS:[$ compile:tpload]无法加载模板

时间:2015-06-22 15:11:18

标签: javascript angularjs nginx

我的angularjs示例应用程序在我的基于netbeans ide的本地服务器上正常运行。但是当我将应用程序移动到nginx服务器时,它在浏览器中给出了以下错误。

Error: [$compile:tpload] Failed to load template: views/login.html
http://errors.angularjs.org/1.3.15/$compile/tpload?p0=views%2Flogin.html
    at REGEX_STRING_REGEXP (angular.js:63)
    at handleError (angular.js:16133)
    at processQueue (angular.js:13248)
    at angular.js:13264
    at Scope.$get.Scope.$eval (angular.js:14466)
    at Scope.$get.Scope.$digest (angular.js:14282)
    at Scope.$get.Scope.$apply (angular.js:14571)
    at done (angular.js:9698)
    at completeRequest (angular.js:9888)
    at XMLHttpRequest.requestLoaded (angular.js:9829)

我的app.js

appModule
        .config(['$routeProvider', function($routeProvider) {
        $routeProvider
                .when('/',
                {
                    controller: 'loginController',
                    templateUrl: 'views/login.html'
                })
                .when('/main',
                {
                    controller: 'dashboardController',
                    templateUrl: 'views/dashboard.html'
                })
                .otherwise({redirectTo: '/'});
    }])

2 个答案:

答案 0 :(得分:1)

我发现我的问题是关于Default $ http Headers。我刚刚为Authorization添加了默认标头,为Accept添加了默认application/json

惊喜!!! 事实证明,这些$ http标题不仅适用于您对终结点进行的$ http调用...而且还适用于每次拨打电话的路由 html文件。而且,如果使用这些标题会导致html文件爆炸,整个过程就会失败。

我只是停止设置Default $ http标头,并编写了我的微服务调用将使用的辅助服务,因为他们需要app / json。然后我的Angular Routing调用又回到了使用标准头文件。

答案 1 :(得分:1)

如果您使用node.js,请尝试此

app.use(express.static(path.join(__dirname,'yourFolder/invoices')));