【问题标题】:Acessing public static files from routes folder in express从 express 中的 routes 文件夹访问公共静态文件
【发布时间】:2015-10-11 16:07:02
【问题描述】:

我正在尝试从公用文件夹访问静态“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”指向路由文件夹,我尝试连接 '/../' 以向上移动目录,但我只收到 403 禁止错误。我想我可以将 home.html 文件放在 routes 目录中,但我真的很想弄清楚如何解决根本问题。当然,从“/”处的视图文件夹中渲染翡翠文件效果很好。提前感谢您的帮助和专业知识。

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    您正试图以错误的方式使用它。您收到禁止错误的原因是客户端不应该能够访问您选择的静态文件夹之外的文件夹。

    你可以做的是选择多个静态目录,比如Setting up two different static directories in node.js Express framework

    虽然我建议您将所有公开可用的文件放在同一目录中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-08
      • 2016-08-22
      • 1970-01-01
      • 2013-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多