【发布时间】:2019-08-14 22:37:04
【问题描述】:
我想提供位于 Nest 项目之外的 /dist 文件夹中的静态 HTML 文件。 index.html加载成功但加载任何JS文件失败(404错误)。
我有一个使用
的 Node/Express.js 项目app.use('/', express.static('../client/dist'))
而且效果很好。
然而,在 Nest 项目中,
app.setBaseViewsDir(join(__dirname, '../../client/dist'))
不成功。
在AppController我试过
import { Response } from 'express';
@Get()
get(@Res() res: Response) {
res.sendFile('index.html', {
root: '../client/dist',
});
}
但没有运气。
如前所述,index.html 已成功加载。所以问题不是走错路。 index.html 中的 src-paths 也不是问题,因为在 Express 项目中使用了完全相同的文件。
/dist
|-index.html
|-main.js
|-etc.
在 index.html 中:
<script type="text/javascript" src="main.js"></script>
当我将 dist 文件夹放入 Nest 项目(并调整路径)时,它也不起作用。
我找到了解决办法:
我现在使用 express 模块:
import * as express from 'express';
...
app.use('/', express.static('../client/dist'));
【问题讨论】:
-
还有未解决的问题吗? :-)
-
@KimKern 不,谢谢。我能够用上面提到的解决方案解决它:-)
-
很高兴听到您解决了它。 :-) 一般来说,考虑将您的解决方案添加为答案,而不是更新您的问题,以便其他人可以从中受益。然后您可以接受您的答案,向其他人展示您的问题已解决。在这种情况下,我建议使用 Nest API 而不是原生 express api,请参阅我的解决方案。
-
对于 Angular + NestJS + Cloud Functions for Firebase,请参阅答案:stackoverflow.com/a/57493387/11127383
标签: javascript node.js express nestjs static-files