我正在使用启用了HTML5Mode的角度路由。现在,当用户点击我的主页上的超链接到/ portal / books / xxx时,他会显示一个特定的部分,但是当他直接在地址栏中输入它时,它将无法工作。只是想知道是否有解决方案?
$routeProvider
.when('/portal', {
templateUrl: 'partials/books-index',
controller: 'BooksIndexCtrl',
})
.when('/portal/books/:bookUrl', {
templateUrl: 'partials/book',
controller: 'BookCtrl'
})
答案 0 :(得分:1)
您是否正确设置了网址重写规则?请记住,在HTML5模式下,所有请求都应该定向到index.html,以使其正常工作。
对于Apache,在.htaccess文件中添加如下内容:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index
RewriteRule (.*) index.html [L]
对于Nginx,在虚拟主机配置文件中,您可以添加如下内容:
location / {
try_files $uri $uri/ /index.html =404;
}