首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用@nrwl/express提供静态文件?

如何使用@nrwl/express提供静态文件?
EN

Stack Overflow用户
提问于 2021-08-08 13:53:12
回答 2查看 351关注 0票数 2

我使用nx来管理我的工作环境,使用@nrwl/express插件。我想从快递服务器提供静态文件,但没有成功。

我试过以下几种方法。

代码语言:javascript
复制
express.static(path.join(__dirname, 'videos'));

但是我无法获取视频目录中的文件,我总是得到404。

我尝试了这两个URL http://localhost:3333/api/output.m3u8

http://localhost:3333/output.m3u8

视频目录位于我的应用程序的根目录中。

知道我怎么解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2022-05-20 13:28:55

不知道你有没有解决过这个问题,但我自己也遇到过同样的问题。

当您使用Nx服务您的快递应用程序时,它将被传送并从dist文件夹中送达。因此,__dirname实际上将解析到您的monoreporoot/dist文件夹(即项目/dist的根)。

如果像我一样,您试图从您的src目录或类似的静态文件夹中提供内容,则需要确保它在服务您的dist应用程序时被传输到您的dist文件夹中。

对我来说,这不是一个问题,因为我只是把它作为开发工具的临时上传文件夹,所以我在dist中手动创建了这个文件夹。如果它链接到您的应用程序,那么您可能需要在构建中添加一个特定的mkdircp命令,以确保文件/文件夹的存在。

票数 1
EN

Stack Overflow用户

发布于 2022-05-28 21:29:23

从dist文件夹中使用的过程,因此必须复制源文件夹。

向project.json添加一行

代码语言:javascript
复制
{
  "targets": {
    "build": {
      "executor": "@nrwl/node:webpack",
      "outputs": ["{options.outputPath}"],
      "options": {
        ...
        "assets": ["packages/<your-app>/src/public"] <-- need add this line
      },
      "configurations": {
        ...
      }
    }
}

将此添加到您的main.ts

代码语言:javascript
复制
app.use('/static', express.static(__dirname + '/public'));

packages/your-app/src/public/some-file.txt中的文件可在

代码语言:javascript
复制
http://localhost:3333/static/some-file.txt
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68701419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档