3 回答

TA貢獻1858條經(jīng)驗 獲得超8個贊
HTML5模式需要URL重寫。
從文檔中:
HTML5模式
服務(wù)器端
使用此模式需要在服務(wù)器端重寫URL,基本上,您必須重寫所有指向應(yīng)用程序入口點的鏈接(例如index.html)。<base>在這種情況下,要求標(biāo)簽也很重要,因為它使AngularJS能夠區(qū)分作為應(yīng)用程序基礎(chǔ)的url部分和應(yīng)由應(yīng)用程序處理的路徑。
— AngularJS開發(fā)人員指南-使用$ location(HTML5模式服務(wù)器端)
對于NodeJS和ExpressJS
var express = require('express');
var path = require('path');
var router = express.Router();
// serve angular front end files from root path
router.use('/', express.static('app', { redirect: false }));
// rewrite virtual urls to angular app to enable refreshing of internal pages
router.get('*', function (req, res, next) {
res.sendFile(path.resolve('app/index.html'));
});
module.exports = router;
對于Windows上的IIS
<rewrite>
<rules>
<rule name="AngularJS" 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>
請參閱,如何配置IIS以在HTML5模式下用URL重寫AngularJS應(yīng)用程序?
對于阿帕奇
RewriteEngine On RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]
RewriteRule ^
添加回答
舉報