2016-01-24 319 views
0

當我運行server.js我得到這個錯誤在我的控制檯響應GET http://localhost:8080/style.css // GET http://localhost:8080/style.css無法加載資源:服務器與404(的NodeJS)狀態

我有我的目錄結構如下: 我有我的目錄結構如下:

|-- public 
     |-- style.css 
     |-- client.js 
     |-- server.js 
     |-- package.json 

server.js

var express = require('express'); 
var app = express(); 
var http = require('http'); 

var port = process.env.PORT || 8080; 
var server = http.createServer(app); 
var io = require('socket.io').listen(server); 


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

app.set('view engine', 'ejs'); 
app.engine('html', require('ejs').renderFile); 
app.get('/', function (req, res) { 

    res.render('index.html'); 

}); 



io.on('connection', function (socket) { 
    console.log('a user connected'); 
    socket.on('disconnect', function() { 
    console.log('user disconnected'); 

    }); 


    socket.on('chat-msg', function (message) { 

    console.log('message' + message.text); 


    }); 
}); 

server.listen(port); 

HTML

<!doctype html> 
<html> 
    <head> 
    <link rel="stylesheet" href="style.css" type="text/css"/> 

    <title>Socket.IO chat</title> 


    </head> 
    <body> 
     <h1>HELLO COMMUNICATION</h1> 

    <section id="chat"> 
     <ul id="messages"></ul> 
     <form action=""> 
     <input id="m"/><button>Send</button> 
     </form> 
    </section> 

    <script src="//code.jquery.com/jquery-1.12.0.min.js"></script> 
     <script src="client.js"></script> 
    <script src="http://localhost:8080/socket.io/socket.io.js"></script> 
    <script> 
     var socket = io.connect('http://localhost:8080'); 

      socket.on('message',function(message){ 

       console.log('le serveur dit'+message); 
      }) 
    </script> 
    </body> 
</html> 

client.js

var socket = io(); 

$('form').submit(function(e){ 

    e.preventDefault(); // On évite le recharchement de la page lors de la validation du formulaire 



    var message={ 

    text : $('#m').val() 


    } 


    socket.emit('chat-msg',message); // On émet l'événement avec le message associé 

    $('#m').val(''); //on vide le champ text 

    if(message.text.trim().length !== 0){//gestion message vide 

    socket.emit('chat-msg',message); 

    } 


    $('#chat input').focus(); 

}); 

回答

0

你是如何運行的server.js?

,如果你是在public目錄並運行node server.js我不認爲路徑將正常工作

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

因爲它會尋找不存在public目錄

+0

當我運行server.js我在控制檯中得到錯誤:GET http:// localhost:8080/style.css localhost /:21 GET http:// localhost:8080/client.js – todo

+0

公共是常規文件 – todo

相關問題