因此,我几乎读过所有关于此主题的答案/问题,但我仍然有很多疑问。使用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调用。 –