我正在尝试修复我的应用,以便显示网址" / posts"而不是" /#/ posts"。我做了一堆研究,现在我的app.js配置如下:
angular.module("app", ["ngRoute", "app.controllers"]).
config(function ($routeProvider, $locationProvider) {
$routeProvider.
when("/", {
templateUrl: "views/partials/postlist.html",
controller: "IndexCtrl"
}).
when("/posts", {
templateUrl: "views/partials/posttable.html",
controller: "PostsCtrl"
}).
otherwise({
redirectTo: "/"
});
$locationProvider.html5Mode({
enabled: true,
requireBase: false,
});
});
这解决了问题的一半:网址显示在浏览器中,没有"#"符号。但是,如果我输入" localhost:3000 / posts",我会收到一条带有消息的404"无法获取/posts."可能导致这种情况的原因是什么?
提前致谢,如果我需要发布更多代码段,请告知我们。
答案 0 :(得分:1)
对于Node.js服务器
app.set('views', path.normalize(__dirname) + '/app/views'); // set views folder path in express app
app.route('/*') // for all requests to your server
.get(res.render('index')); //render index.html
对于Apache服务器
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]