2016-06-07 52 views
0

我遇到了很多我的問題的實例,但是他們都沒有爲我工作。我的服務器根在哪裏,如果這兩個路徑都不起作用?在la-wars>public>css>file,也沒有發現下面的更相對的public>css>fileNodeJS不會服務我的靜態文件

這是我如何使用快遞爲宗旨:

app.use(express.static(path.join(__dirname, 'public'))); 

而且它會導致下面的第二個404的結果。隨着第一個,我有express.static()註釋掉,並試圖在標記中的絕對路徑。

enter image description here

enter image description here

編輯:整個入口點的應用程序:

var express = require('express'), 
    app = require('express')(), 
    ejs = require('ejs'), 
    path = require('path'), 
    cookieParser = require('cookie-parser'), 
    util = require('util'), 
    port = process.env.PORT || 3000, 
    user = require('./models/user.js'), 
    formidable = require('formidable'), 
    router = express.Router(); 

app.use(express.static(path.join(__dirname, 'public'))); 
app.set('views', __dirname + '/views'); 
app.engine('html', require('ejs').renderFile); 
app.set('view engine', 'html'); 
//app.use(require('.middleware/auth.js')); 

app.use(require('./routes')(express)); 

app.listen(port); 
+0

你可以發佈你的整個expressJs腳本?這將有所幫助。 – user2263572

+0

@ user2263572你去那裏 –

回答

1

這取決於該網址是什麼,你把你的HTML頁面,但是從控制檯的錯誤窗口,我會猜測這個(注意額外的第一個參數)解決你的問題:

app.use("/public", express.static(__dirname + '/public')); 

看來你在html文件中同時使用了「/ public」(用於js)和「public」(用於css)。上面的代碼至少應該修復兩個錯誤之一。

召喚:

app.use(express.static(path.join(__dirname, 'public'))); 

是說,它可以直接服務於您的文件在「公​​共」文件夾中,這樣可以保持這一點,但在HTML文件從網址中刪除「公共/」和直接用「/」開頭。

+0

它工作,但爲什麼? –

+0

@SvetanDimoff編輯我的帖子。基本上你只是給了一個公用文件夾,但沒有它的路由,它會被認爲是在根或'/'處服務。 – coyotte508

0

你會發現slider.jshttp://localhost:3000/js/slider.js的網址 - 這就是它的工作原理。