因此,我幾乎讀過所有關於此主題的答案/問題,但我仍然有很多疑問。使用AngularJS和外部NodeJS服務器啓用html5模式
首先,問題:
我有支持HTML5的應用程序AngularJS,這樣我就可以擺脫「#」標誌。
$locationProvider.html5Mode({ enabled: true, requireBase: true });
$locationProvider.hashPrefix('!');
這是我的index.html的重要組成部分:
<!DOCTYPE html>
<html ng-app="application" ng-controller="ApplicationController as app">
<head>
<meta name="fragment" content="!">
<title>LivingRoomArt</title>
<meta charset="UTF-8">
<base href="/index.html" />
我有服務器的NodeJS通信這是使用快報:
router.route('/events')
.post(authController.isAuthenticated, eventController.postEvent)
.get(eventController.getEvents);
// Register all our routes with /api
app.use('/api', router);
// Start the server
app.listen(process.env.PORT || 5000);
所以,通常的問題:
重新加載後,我從服務器獲取404。我得到的這個概念在這裏,處處建議的解決方案:
// This route deals enables HTML5Mode by forwarding missing files to the index.html
app.all('/*', function(req, res) {
res.sendfile('index.html');
});
});
的事情是,我沒有我的服務器上的index.html文件,既不做 我想在複製它我的服務器。
那麼,我該如何告訴Node正確處理請求,而無需在我的服務器上存儲html文件?
我在Heroku上託管Node應用程序,如果有幫助。
所以,你有一個客戶端服務器和API服務器,對不對? 404錯誤是客戶端服務器上的句柄? – Zagonine
那麼,現在無處:)但我可以在客戶端處理它,是的。我有一個API服務器和我的客戶端的靜態服務器(HTML,JS等) –
然後呢?我需要訪問子視圖並在那裏進行AJAX調用。 –