如何配置 express 以在生产环境中为 angular 应用程序提供服务?
How to configure express to serve angular app in production?
客户端路由机制存在一个常见问题:一旦部署,所谓的 "deep links" 就像 host/deep/deeper/deepest/link/1
吐出 404 Not Found rahter 然后传播到 index.html
并正确地解决了某个组件。
如何配置?
我试过:
app.use(express.static(root)); // root folder of the project
app.use((req, res) => res.sendFile(path.join(__dirname, root,'index.html')));
...但它仅适用于基础 url;其他的都被拒绝了。
app.use(express.static(root)); // root folder of the project
这意味着没有安装路径的中间件功能。对路由器的每个请求都会执行此代码
尝试像这样使用
app.use('/', express.static(path.join(__dirname, '../root')));
app.get('/*', function(req, res) {
res.sendFile(path.join(__dirname, '../root/index.html'));
});
完整的例子在这里
https://github.com/mdshohelrana/mean-stack/blob/master/server/app.ts
客户端路由机制存在一个常见问题:一旦部署,所谓的 "deep links" 就像 host/deep/deeper/deepest/link/1
吐出 404 Not Found rahter 然后传播到 index.html
并正确地解决了某个组件。
如何配置?
我试过:
app.use(express.static(root)); // root folder of the project
app.use((req, res) => res.sendFile(path.join(__dirname, root,'index.html')));
...但它仅适用于基础 url;其他的都被拒绝了。
app.use(express.static(root)); // root folder of the project
这意味着没有安装路径的中间件功能。对路由器的每个请求都会执行此代码
尝试像这样使用
app.use('/', express.static(path.join(__dirname, '../root')));
app.get('/*', function(req, res) {
res.sendFile(path.join(__dirname, '../root/index.html'));
});
完整的例子在这里 https://github.com/mdshohelrana/mean-stack/blob/master/server/app.ts