2016-02-05 97 views
0

我正在使用Express和socket.io來編寫應用程序,但我的服務器找不到靜態文件的位置。我意識到這個問題已經被多次提出,但是沒有一個建議的解決方案爲我工作。我嘗試過使用express.static()來引用公用文件夾的不同方法,或者重新排列代碼結構,但仍然沒有運氣。快遞服務器不提供靜態文件

代碼結構:

/node_modules 
/public 
    /css 
     index.css 
    /html 
     index.html 
    /js 
/src 
    /server 
     /models 
index.js 
package.json 

index.js:

// Get all modules needed 
var express   = require('express'), 
    http    = require('http'), 
    bodyParser  = require('body-parser'), 
    logger   = require('logger'), 
    mongoose  = require('mongoose'), 
    io    = require('socket.io'), 
    path   = require('path'), 
    methodOverride = require('method-override'), 
    User = require('./src/server/models/user'); 

// Connect to MongoDB 
mongoose.connect('mongodb://localhost:27017/' + name); 
var db = mongoose.connection;*/ 
var uristring = 
    process.env.MONGOLAB_URI || 
    process.env.MONGOHQ_URL || 
    'mongodb://localhost/HelloMongoose'; 

mongoose.connect(uristring, function (err, res) { 
    if (err) { 
     console.log ('ERROR connecting to: ' + uristring + '. ' + err); 
    } else { 
     console.log ('Succeeded connected to: ' + uristring); 
    } 
}); 

// Set up 
var app = express(); 
var server = http.Server(app); 
var ioServer = io(server); 
app.use(bodyParser.json({})); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(methodOverride()); 
app.use(bodyParser()); 

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

// Connect to a socket 
ioServer.on('connection', function(socket){ 
    // do something 
}) 

回答

1

你需要服務包含index.html文件的目錄:

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

您需要確保指定的路線是/public/html而不是./public/html

雖然這可以解決問題,但我建議您將index.html文件放在您的public目錄的根目錄下。這是推薦的代碼結構:

/node_modules 
/public 
    /css 
     index.css 
    /js 
    index.html 
/src 
    /server 
     /models 
index.js 
package.json 
+0

謝謝!我試過「./public/html」,但沒有真正的工作。所以我把index.html移到了public的根目錄,並嘗試了「./public」,仍然沒有奏效。這裏可能發生了什麼? – HoneyWine

+0

我已經更新了答案。我對我的解決方案中的錯誤表示歉意。 – gnerkus

+0

工作就像一個奇蹟...非常感謝! – HoneyWine

相關問題