无法在node.js中加载js和css文件

这是html页面。我从node.js服务器调用了这个页面,例如app.js.Here我无法加载socket.io.js,bootstrap.js,bootstrap.css页面。

我的index.html:

<html> <script type="text/javascript" src="/javascripts/socket.io.js"></script> <script src="https://code.jquery.com/jquery-1.10.2.js"></script> <script type ="text/javascript" src="/javascripts/bootstrap.js"></script> <link rel="stylesheet" type="text/css" href="/stylesheets/bootstrap.css" /> <div id="progressbar"> </div> <script> var socket = io('http://localhost:8085'); socket.on('connect', function(){}); socket.on('message', function(data){ $('#progressbar').progressbar({ maximum: 100, step: JSON.parse(data).percent }); }); socket.on('disconnect', function(){}); </script> </html> 

我的app.js代码:

 var app = express (); var http = require('http').Server(app); var io = require('socket.io')(http); http.listen(8085, function(){ console.log('listening on *:8085'); }); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); // uncomment after placing your favicon in /public //app.use(favicon(__dirname + '/public/favicon.ico')); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', routes); app.use('/users', users); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); //res.send('Hello World!'); }); 

在萤火虫,我面对这个 在这里输入图像描述

您已经为静态文件设置了不正确的path。

在你的情况下,你需要使用这个:

 app.use('/javascripts', express.static(__dirname + '/javascripts')); app.use('/stylesheets', express.static(__dirname + '/stylesheets')); 

现在,无论是在JavaScript样式表文件夹中的文件将作为静态文件加载。

你目前使用静态文件的方法:

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

这将加载公共文件夹下的所有东西作为静态文件,所以如果你想要的话,你需要移动JavaScript样式表文件夹。

改变你的视图引擎为HTML和修改代码如下:

 app.set('views', path.join(__dirname, 'public')); app.set('view engine', 'html'); 

并更改sendfile方法:

 res.sendFile(path.join(__dirname, '../YOUR_FOLDER_NAME/public', 'index.html')); 

EDITED ::

更改index.html文件:

 <script src="/socket.io/socket.io.js"></script> <script src="https://code.jquery.com/jquery-1.10.2.js"></script> <link rel="stylesheet" type="text/css" href="stylesheets/test.css" /> 

这是app.js。 (基于@Andrius的解决scheme)我能够使其在http:// localhost:8085上运行 。 index.html保持不变。

 var express = require('express'); var path = require('path'); var bodyParser = require('body-parser'); var cookieParser = require('cookie-parser'); var app = express(); var http = require('http').Server(app); var io = require('socket.io')(http); http.listen(8085, function(){ console.log('listening on *:8085'); }); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); // uncomment after placing your favicon in /public //app.use(favicon(__dirname + '/public/favicon.ico')); //app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); //test app.use('/javascripts', express.static(__dirname + '/javascripts')); app.use('/stylesheets', express.static(__dirname + '/stylesheets')); app.use(express.static(path.join(__dirname, 'public'))); //app.use('/', routes); //app.use('/users', users); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); //res.send('Hello World!'); });