在express中访问路由文件夹中的公共静态文件

我试图从公用文件夹访问一个静态的“home.html”文件。 该应用程序的体系结构是:

  • 上市
    • home.html的
  • 路线
    • index.js
  • 意见
  • myapp.js

myapp.js:

var express = require('express'); var path = require('path'); var routes = require('./routes/index'); var app = express(); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', routes); 

index.js:

 var express = require('express'); var router = express.Router(); router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); router.get('/about', function(req, res, next){ res.sendFile(__dirname + '/home.html'); }); module.exports = router; 

我遇到的主要问题是我无法在'/ about'加载home.html文件。 index.js中的“__dirname”指向path文件夹,我尝试连接'/../'来移动一个目录,但是我得到一个403 Forbidden Error。 我想我可以把home.html文件放在path目录中,但我真的想弄清楚如何解决底层的问题。 当然,从视图文件夹中的'/'渲染玉文件工作得很好。 提前感谢您的帮助和专业知识。

你试图以错误的方式使用它。 获取禁止的错误的原因是客户端应该无法访问您select的静态文件夹之外的文件夹。

你可以做的是select多个静态目录,比如在node.js Express框架中设置两个不同的静态目录

虽然我build议你把所有公开可用的文件放在同一个目录下。