在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议你把所有公开可用的文件放在同一个目录下。