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'))
当我设置一些路线时,我通常会这样做:
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'))