我似乎无法使用快速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 ]
有人能告诉我我错过了什么吗?
更新
我实际创建了一个新项目,并将我的脚本复制到这个新项目中,它有效吗?! 我猜我不得不将其视为某种局部的怪异。谢谢你所有的时间。
答案 0 :(得分:0)
__dirname
是当前.js文件所在的目录。你的文件系统ascii art diagram省略了这个难题的重要部分。例如,如果您的第一个代码段位于project/server.js
,那么这是正确的。我认为然后在浏览器中加载http://localhost:3000
应该正确找到js/testscene.js
文件。但是,使用相对URI通常是一个坏主意,除非您确实需要/需要它,所以为了理智,将其更改为src="/js/testscene.js"
。