[/g8]
Использование режима HTML5 требует перезаписи URL-адресов на стороне сервера, в основном вам нужно переписать все ваши ссылки на точку входа вашего приложения (например, index.html). Требование к тегу
также важно для этого случая, так как позволяет AngularJS различать часть URL-адреса, которая является базой приложения, и путь, который должен обрабатывать приложение. Для получения дополнительной информации см. Руководство разработчика AngularJS - Использование $ location Режим сервера HTML5 .
Когда вы включите html5Mode, символ #
больше не будет использоваться в ваших URL-адресах. Символ #
полезен, поскольку он не требует конфигурации на стороне сервера. Без #
URL выглядит намного приятнее, но также требует перезаписывания на стороне сервера. Вот несколько примеров:
ServerName my-app
DocumentRoot /path/to/app
RewriteEngine on
# Don't rewrite files or directories
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# Rewrite everything else to index.html to allow html5 state links
RewriteRule ^ index.html [L]
server {
server_name my-app;
index index.html;
root /path/to/app;
location / {
try_files $uri $uri/ /index.html;
}
}
var express = require('express');
var app = express();
app.use('/js', express.static(__dirname + '/js'));
app.use('/dist', express.static(__dirname + '/../dist'));
app.use('/css', express.static(__dirname + '/css'));
app.use('/partials', express.static(__dirname + '/partials'));
app.all('/*', function(req, res, next) {
// Just send the index.html for other files to support HTML5Mode
res.sendFile('index.html', { root: __dirname });
});
app.listen(3006); //the port you want to use