我有一个AngularJS
有两个视图的项目;/settings
和/
。该app.js
文件看起来像;
.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
$routeProvider
.when('/', {
templateUrl: './views/bill.html',
controller: 'BillCtrl'
})
.when('/settings', {
templateUrl: './views/settings.html',
controller: 'SettingsCtrl'
})
.otherwise({
redirectTo: '/'
});
$locationProvider.html5Mode(true);
}]);
定义所有路线的地方。
然后我有app/views/bill.html
& app/views/settings.html
。
现在,grunt serve
在我可以使用ngHref
. 问题是当我这样做grunt build
并nginx
指向构建目录(路径是/kds
)时,我看到一个GET http://localhost/views/settings.html 404 (Not Found)
路径应该是相对的,因此它应该是 aGET http://localhost/kds/views/settings.html
但事实并非如此。这里发生了什么?
这看起来更像是一个糟糕的服务器配置,而不是其他任何东西。还是构建让我搞砸了?
服务器指令是;
location /kds {
alias /Users/asheshambasta/code/kds/dist/;
index index.html index.htm;
}
编辑(完整app.js
)
'use strict';
angular.module('kdsApp', [
'ngCookies',
'ngResource',
'ngSanitize',
'ngRoute',
'apiService',
'Lib',
'ngTouch',
'ipCookie'
])
.run(['$location', 'ipCookie', 'APICfg', function($location, ipCookie, APICfg) {
var login = ipCookie('lgInf');
if (!login || !login.usr || !login.pass || !login.srv) {
$location.path('/settings');
} else {
APICfg.setSrv(login.srv);
APICfg.setCId(login.cId);
}
}])
.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
$routeProvider
.when('/', {
templateUrl: '/views/bill.html',
controller: 'BillCtrl'
})
.when('/settings', {
templateUrl: '/views/settings.html',
controller: 'SettingsCtrl'
})
.otherwise({
redirectTo: '/'
});
$locationProvider.html5Mode(true);
}]);
应用程序所需的所有文件:
<!-- build:js({.tmp,app}) scripts/scripts.js -->
<script src="scripts/app.js"></script>
<script src="scripts/apiservice.js"></script>
<script src="scripts/lib.js"></script>
<script src="scripts/class/bill.js"></script>
<script src="scripts/class/item.js"></script>
<script src="scripts/class/course.js"></script>
<script src="scripts/controllers/main.js"></script>
<script src="scripts/controllers/bill.js"></script>
<script src="scripts/controllers/settings.js"></script>
<!-- endbuild -->