[英]AngularJS ui-router html5 mode breaks routing
我有一個使用標准#EX正確路由的WebApp ) http:// localhost:8080 /#/ about.html
添加$ locationProvider.html5Mode(true);時 到我的角度'app.js'文件會破壞應用程序(視圖未顯示,鏈接不可單擊)...我已經看過多個教程/示例,但無法弄清楚問題出在哪里。 任何幫助,將不勝感激。
APP.JS
var routerApp = angular.module('routerApp', ['ui.router']);
.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {
$locationProvider.html5Mode(true);
$urlRouterProvider.otherwise('/');
$stateProvider
.state('home', {
url: '/',
templateUrl: '/home-partial.html'
})
.state('about', {
url: '/about',
templateUrl: 'about.html'
});
}]);
INDEX.HTML
<html>
<head>
<base href="/">
<link href="/assets/css/bootstrap.min.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="assets/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.13/angular-ui-router.js"></script>
<script src="app.js"></script>
</head>
<body ng-app="routerApp">
<nav>
<ul class="nav masthead-nav">
<li><a ui-sref="home">Home</a></li>
<li><a ui-sref="about">About</a></li>
</ul>
</nav>
<div class="inner cover">
<div ui-view></div>
</div>
</body>
</html>
SERVER.JS
// Call main packages
//===============================================
var express = require('express');
var app = express();
var mongoose = require('mongoose');
var morgan = require('morgan');
var bodyParser = require('body-parser')
var path = require('path');
// APP GLOBAL CONFIG
//===============================================
/* connect to the database */
mongoose.connect('mongodb://127.0.0.1:27017:/DB');
/* set location for static files */
app.use(express.static(__dirname + '/public'));
/* log all HTTP requests to console */
app.use(morgan('dev'));
/* set listen port for conn(s) */
app.listen(6070);
// catch all route
app.get('*', function (req, res) {
res.sendFile(path.join(__dirname + '/public/index.html'));
});
退后一步,並從邏輯上看了一下之后,我發現了我的簡單錯誤……$ locationProvider需要像下面這樣傳遞:
.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', function ($stateProvider, $urlRouterProvider, $locationProvider) {
// code
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.