【发布时间】:2016-08-22 09:04:12
【问题描述】:
我使用 Angular 制作了一个示例 SPA。我使用 Angular 路由功能来创建一个布局页面,然后根据最终用户请求的 URL 注入和交换不同的视图。 索引页面上的 href 路由中的哈希值一切正常
<a href="#/page1">page1</a>
但这样做,我的网页 URL 将类似于 http://localhost/angular/#/page1
所以我想删除 URL 中的哈希值并使其像 http://localhost/angular/page1
要删除哈希,您必须启用 html5Mode 路由并在索引页面上设置基本 href
https://docs.angularjs.org/error/$location/nobase
我做了完全相同的事情(请参阅下面的代码 sn-p),但是它不起作用。我在本地主机 Apache 服务器上运行它。
var app = angular.module("myModule", ["ngRoute"])
.config(function($routeProvider, $locationProvider) {
$routeProvider
.when("/page1", {
templateUrl: "partials/page1.html",
controller: "page1Controller"
})
.when("/page2", {
templateUrl: "partials/page2.html",
controller: "page2Controller"
})
$locationProvider.html5Mode(true);
})
.controller("page1Controller", function($scope) {
$scope.message = "Page1";
})
.controller("page2Controller", function($scope) {
$scope.message = "Page2";
})
<html ng-app="myModule">
<head>
<title>Angular Routing</title>
<script type="text/javascript" src="angular.js"></script>
<script type="text/javascript" src="angular-route.js"></script>
<script type="text/javascript" src="js.js"></script>
<link rel="stylesheet" type="text/css" href="styles.css">
<base href="angular"></base>
</head>
<body>
<table>
<h3>Sammple Routing in AngularJS</h3>
<tr>
<td class="leftMenu">
<a href="page1">page1</a>
<a href="page2">page2</a>
</td>
<td class="mainContent">
<ng-view></ng-view>
<!--partials will be filled here-->
</td>
</tr>
</table>
</body>
【问题讨论】:
-
您是否尝试在
base href末尾添加/?喜欢:<base href="angular/" /> -
是的,试过了..没用:(
标签: angularjs angularjs-routing