2013-06-30 43 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