Express.js 路线组织

Express.js Route orgainisation

当我设置一些路线时,我通常会这样做:

app.get('/x', function(req, res) {
res.sendFile(path.join(__dirname + '/public/.../index.html'));});

问题在于,如果您在路由文件夹中有 JS 或 CSS,您将无法托管它们。

我经常添加

app.get('/public/.../js/index.js', function(req, res) {res.sendFile (__dirname + '/public/.../js/index.js');});
app.get('/public/.../css/style.css', function(req, res) {res.sendFile (__dirname + '/public/.../css/style.css');});

就在路线下方,使 JS 和 CSS 可访问。

我已经使用 express static 托管库

app.use('/lib', express.static('lib'));

但这对于 JS 和路由文件夹中的 CSS 是不可能的 (/public/.../js)

  • Is There a better Way to organize my files that are in the route folders ?

您可以使用虚拟路径,保持当前的目录结构,添加以下路由您可以从 ./public 子目录下引用所有带有 /static 前缀的静态文件:

app.use('/static', express.static('public'))

例如你可以参考 http://your_server/static/public/.../js/index.js请注意,在这种情况下,/public 下的所有文件都可以通过 /static 前缀访问,因此您不应该在那里有服务器代码或服务器配置。

理想情况下,为了清楚起见,您应该托管并引用一个根文件夹中的所有静态文件,类型为子文件夹(例如 /static/js、/static/css):

app.use('/static', express.static('static'))