我正在开发平台上工作,我有类似于以下的代码:
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/