我有一个gulp connect服务器正在运行,并希望从我在AngularJS项目中使用的routeProvider中删除hashbang。
我的app.js中有这个:
//Setting HTML5 Location Mode
companiesApp.config(['$locationProvider',
function ($locationProvider) {
$locationProvider.hashPrefix('!');
$locationProvider.html5Mode(true);
}
]);
我知道如果删除hashPrefix,它仍然可以与http://www.example.com/#example-uri
一起使用但是如何完全摆脱它。是不是html5Mode(true)应该这样做?
答案 0 :(得分:0)
是的,$locationProvider.html5Mode(true);
应该这样做。
但是为了能够直接从浏览器访问页面,您应该将服务器配置为将请求重定向到索引页面,然后在内部调用部分。 {-3}}有关如何配置文档的angular-ui文档。
答案 1 :(得分:0)
如果您的方案可能有用,请尝试此操作
只添加$ locationProvider.hashPrefix('')这样的前缀来删除Bang前缀......
var app = angular.module('app', []);
app.config(['$routeProvider', '$locationProvider',
function ($routeProvider, $locationProvider)
{
$routeProvider.when('/', {
templateUrl: "app1.html",
controller: "App1Ctrl"
})
.when('/Program1', {
templateUrl: "app2.html",
controller: "App2Ctrl"
});
$locationProvider.hashPrefix("");
}
]);
首先在依赖项中添加$ routeProvider,然后在hashPrefix的最后添加为null 删除tha bang前缀。