在角度1中我能够为前端和后端都有一个项目,因为我可以使用快速功能来提供前端代码
.groupby.rolling
这种方法有一个错误,因为目前使用angular 4快速启动种子,index.html不在根前端文件夹中,而是在根前端文件夹中的src。所以为了解释我尝试过:
app.use('/frontEnd', express.static('frontend'));
那"工作"但是当你拉起app.use('/frontEnd', express.static('frontend/src'));
时,它会中断。
问题:解决这个问题的方法是什么?
替代问题:如果这个问题不再可用,1。有没有办法为两端都有一个项目或2.是否正确的程序只是让两边分开项目
答案 0 :(得分:0)
由于使用了History API,Express需要捕获所有请求并提供index.html
然后让Angular处理路由。
因此,您应在Express应用中使用的代码段为:
// Include the path module
include path from 'path'
// Specify your static path
app.use('/assets', express.static(path.join(__dirname, 'frontend/src/assets')));
// Then catch all requests made to http://localhost:8080/frontEnd
app.get('/frontEnd/*', (req, res, next) => {
res.sendFile(path.join(__dirname, 'frontend/src/index.html'));
});
现在,当您要加载静态此类图像,脚本等时,路径/assets
将从frontend/src/assets
加载静态。如果您未指定资产路径,则每个资产请求都将返回index.html!
此外,当你要刺激时,请考虑server-side rendering。 :)