2013-06-30 38 views
3

我似乎无法在我的公共目录中将3.x服务器上传到静态文件。他们以404在静态文件上运行JS-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

你有没有尝试调用它'app.configure'? (基本上,在顶级) – SheetJS

+0

我只是做了同样的区别。 – Nick

+2

您是否尝试将/js/testscene.js作为网址? – SheetJS

回答

0

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

+1

我正在执行的脚本位于根级别。含义是在/project/main.js中。我找不到任何问题。 – Nick