3

我似乎无法让 express 3.x 在我的公共目录中提供静态文件。他们都请求以 404 结尾。

    var express = require('express')  
  , engine = require('ejs') 
  , app = express();


app.configure(function () {
    app.use(express.static(__dirname + '/public'));   
    app.set('views', __dirname + '/views');
    app.set('view engine', 'ejs');
});

app.get('/', function(req, res) {
    res.render('test.ejs')
});


app.listen(3000);

我的 test.ejs 引用了如下所示的 js 文件:

<script type="text/javascript" src="js/testscene.js"></script>

我必须忽略一些简单的事情。我有以下文件夹结构:

project
  -public
     -js
        testscene.js
  -views ]

有人可以告诉我我错过了什么吗?

更新

我实际上创建了一个新项目并将我的脚本复制到这个新项目中并且它有效?!我想我只需要关闭它作为某种本地化的怪异。谢谢你所有的时间。

4

1 回答 1

0

__dirname是当前 .js 文件所在的目录。您的文件系统 ascii 艺术图忽略了这个难题的重要部分。例如,如果您的第一个代码片段位于project/server.js,那么这是正确的。我认为然后http://localhost:3000在您的浏览器中加载应该可以正确找到该js/testscene.js文件。但是,使用相对 URI 通常不是一个好主意,除非您真的确定自己想要/需要它,所以为了理智起见,将其更改为src="/js/testscene.js".

于 2013-06-30T04:48:51.667 回答