Express 找不到静态文件
Express Can't find Static files
使用express和sockets创建聊天客户端。但是,当我尝试连接到静态文件时收到 404。
Server.js
var jade = require('jade');
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
io.on('connection', function() {
'use strict';
socket.on('setPseudo', function(data) {
socket.set('pseudo', data);
});
socket.on('message', function(message) {
socket.get('pseudo', function(error, name) {
var data = {
'message': message,
pseudo: name
};
socket.broadcast.emit('message', data);
console.log("user " + name + " send this : " + message);
});
});
});
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.set("view options", {
layout: false
});
app.use(express.static(__dirname + '/public'));
app.get('/', function(req, res) {
'use strict';
res.render('home.jade');
});
server.listen(4000);
为了让我的应用程序正常工作,我需要连接到我的 /public 文件夹中的 script.js 文件。但是服务器好像找不到。
使用 jade 文件更新:
doctype html
html
head
title le Chat
script(src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js')
script(src="/socket.io/socket.io.js")
script(src="public/script.js")
body
div.container
header
h1 le Chat Meow
input(type='text')#pseudoInput
button#pseudoSet Set Pseudo
div#chatEntries
div#chatControls
input(type='text')#messageInput
button#submit Send
还有文件夹结构:
-public > script.js
-views > home.jade
-server.js
将 script(src="public/script.js")
更改为 script(src="script.js")
,因为您的 public 文件夹是静态文件的根目录,因此您不需要将其放在 html 文件的路径中
由于有人将您关于 console.readLine 的其他最新问题标记为重复问题,尽管这显然不是我在这里回答的问题。
显然 console.readLine 在 IDE 中不起作用,例如 eclipse。
您必须 运行 实际控制台中的程序才能使该代码正常工作。
建议改用 缓冲 reader。
使用express和sockets创建聊天客户端。但是,当我尝试连接到静态文件时收到 404。
Server.js
var jade = require('jade');
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
io.on('connection', function() {
'use strict';
socket.on('setPseudo', function(data) {
socket.set('pseudo', data);
});
socket.on('message', function(message) {
socket.get('pseudo', function(error, name) {
var data = {
'message': message,
pseudo: name
};
socket.broadcast.emit('message', data);
console.log("user " + name + " send this : " + message);
});
});
});
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.set("view options", {
layout: false
});
app.use(express.static(__dirname + '/public'));
app.get('/', function(req, res) {
'use strict';
res.render('home.jade');
});
server.listen(4000);
为了让我的应用程序正常工作,我需要连接到我的 /public 文件夹中的 script.js 文件。但是服务器好像找不到。
使用 jade 文件更新:
doctype html
html
head
title le Chat
script(src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js')
script(src="/socket.io/socket.io.js")
script(src="public/script.js")
body
div.container
header
h1 le Chat Meow
input(type='text')#pseudoInput
button#pseudoSet Set Pseudo
div#chatEntries
div#chatControls
input(type='text')#messageInput
button#submit Send
还有文件夹结构:
-public > script.js
-views > home.jade
-server.js
将 script(src="public/script.js")
更改为 script(src="script.js")
,因为您的 public 文件夹是静态文件的根目录,因此您不需要将其放在 html 文件的路径中
由于有人将您关于 console.readLine 的其他最新问题标记为重复问题,尽管这显然不是我在这里回答的问题。
显然 console.readLine 在 IDE 中不起作用,例如 eclipse。 您必须 运行 实际控制台中的程序才能使该代码正常工作。 建议改用 缓冲 reader。