表示给出404的静态文件

时间:2014-01-14 18:23:15

标签: node.js http express

我不确定我在这里做错了什么......这是我的档案结构......

/app
  /scripts/components/post
    /post.html
    /PostCtrl.js

这是我的表达use

var publicDir = path.join(__dirname, 'app'));
app.use(express.static(publicDir));
app.use(app.router);

我已确认publicDir是我想要提供的目录。

我不确定我的设置有什么问题。我错误地使用了这个吗?

2 个答案:

答案 0 :(得分:0)

app.router应位于中间件链的express.static行之前。

var publicDir = path.join(__dirname, 'app'));
app.use(app.router);
app.use(express.static(publicDir));

您也可以考虑使用ecstatic模块来提供静态文件。它比标准的静态中间件更灵活。

var ecstatic = require('ecstatic')
app.use(app.router)
app.use(staticMiddleware())

function staticMiddleware() {
  var rootPath = path.join(__dirname, 'public')
  var ecstaticOpts = {
    root: rootPath,
    baseDir: '/',
    showDir: true
  }
  return ecstatic(ecstaticOpts)
}

答案 1 :(得分:0)

我发现我的其他代码中存在一些与导致问题无关的内容。我的静态文件设置没有任何问题。