我使用nx来管理我的工作环境,使用@nrwl/express插件。我想从快递服务器提供静态文件,但没有成功。
我试过以下几种方法。
express.static(path.join(__dirname, 'videos'));但是我无法获取视频目录中的文件,我总是得到404。
我尝试了这两个URL http://localhost:3333/api/output.m3u8
http://localhost:3333/output.m3u8
视频目录位于我的应用程序的根目录中。
知道我怎么解决这个问题吗?
发布于 2022-05-20 13:28:55
不知道你有没有解决过这个问题,但我自己也遇到过同样的问题。
当您使用Nx服务您的快递应用程序时,它将被传送并从dist文件夹中送达。因此,__dirname实际上将解析到您的monoreporoot/dist文件夹(即项目/dist的根)。
如果像我一样,您试图从您的src目录或类似的静态文件夹中提供内容,则需要确保它在服务您的dist应用程序时被传输到您的dist文件夹中。
对我来说,这不是一个问题,因为我只是把它作为开发工具的临时上传文件夹,所以我在dist中手动创建了这个文件夹。如果它链接到您的应用程序,那么您可能需要在构建中添加一个特定的mkdir或cp命令,以确保文件/文件夹的存在。
发布于 2022-05-28 21:29:23
从dist文件夹中使用的过程,因此必须复制源文件夹。
向project.json添加一行
{
"targets": {
"build": {
"executor": "@nrwl/node:webpack",
"outputs": ["{options.outputPath}"],
"options": {
...
"assets": ["packages/<your-app>/src/public"] <-- need add this line
},
"configurations": {
...
}
}
}将此添加到您的main.ts中
app.use('/static', express.static(__dirname + '/public'));packages/your-app/src/public/some-file.txt中的文件可在
http://localhost:3333/static/some-file.txthttps://stackoverflow.com/questions/68701419
复制相似问题