node.js - 如何更改快速静态目录?

标签 node.js express connect

我正在开发平台上工作,我有类似于以下的代码:

app.use('/public', express.static( config.directory.public ));

问题是有许多(数百个)项目,每个项目都有自己的目录结构。将通过 URL 选择项目:

http://localhost/dev/accounts

其中accounts是一个项目,有自己的目录树和静态公共(public)目录。 我不想为每个项目运行单独的 Node 副本。通过 URL 选择项目后,需要重新配置 Express 来为该请求提供文件。

但是,这种方法可能不可行,因为我们可能同时处理许多项目。因此,每个静态文件请求都必须根据项目 URL 进行处理。这似乎否定了静态目录的好处。

我认为我追求的是一种将变量放入目录路径的方法

http://localhost/dev/accounts

将设置一个名为 prj =“accounts”的变量,然后以某种方式设置express,以便根目录为“c:\projects\”+ prj +“\public”。 如果我只是为每个请求发出一个新的 app.use(..) 语句,我想会发生不好的事情。

也许我最好手动读取每个静态请求的文件内容并将内容发回。 还有其他方法可以解决这个问题吗?

最佳答案

我不确定我是否正确理解了您的问题,但 Express 会自动为您提供文件目录中的静态文件。如果您在某个“path/to/public”文件夹中有一堆项目,您只需执行类似的操作

app.use('/', express.static( __dirname + '/public' ));

这样,您只需输入一些网址,例如

http://localhost/project1

http://localhost/project2

关于node.js - 如何更改快速静态目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21985756/

相关文章:

node.js - 在 Node.js 应用程序中组织 View 文件

javascript - request post 与 axios post 解析不同的结果

javascript - Node.js 全局变量

javascript - 为什么内存中的 JavaScript 对象文字比 JSON 形式的文本文件大小大得多?

javascript - 如何在nodejs中播放存储在Buffer中的音频?

javascript - 如何连接 Bookshelf.js 中的三个表?

javascript - post请求完成后如何重定向用户

java - 无法从 HTTPS URL 获取 Inputsream - 连接超时 (ConnectException)

mysql - docker + MySQL 8 : connection issues

c++ - 如何将 QObbject (QPushButton) 连接到其他类的方法?