HTML5 모드를 사용하려면 서버 측에서 URL을 다시 작성해야합니다. 기본적으로 모든 링크를 응용 프로그램의 진입 점 (예 : index.html)에 다시 작성해야합니다. <base>
이 경우에는 AngularJS가 응용 프로그램 기반 URL 부분과 응용 프로그램에서 처리해야하는 경로를 구별 할 수 있으므로 태그가 필요합니다 . 자세한 내용은 AngularJS 개발자 안내서-$ location HTML5 모드 서버 측 사용을 참조하십시오 .
최신 정보
방법 : html5Mode와 작동하도록 서버 구성 1
html5Mode를 사용하도록 설정하면 해당 #
문자가 더 이상 URL에 사용되지 않습니다. 이 #
기호는 서버 측 구성이 필요하지 않기 때문에 유용합니다. 이 없으면 #
URL이 훨씬 멋지게 보이지만 서버 측 다시 쓰기도 필요합니다. 여기 몇 가지 예가 있어요.
아파치 다시 작성
<VirtualHost *:80>
ServerName my-app
DocumentRoot /path/to/app
<Directory /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]
</Directory>
</VirtualHost>
Nginx 재 작성
server {
server_name my-app;
index index.html;
root /path/to/app;
location / {
try_files $uri $uri/ /index.html;
}
}
Azure IIS 다시 쓰기
<system.webServer>
<rewrite>
<rules>
<rule name="Main Rule" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
빠른 다시 쓰기
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
또한보십시오