我刚开始学习nodejs
并遇到了Express
框架中我无法加载简单HTML文件的问题。
我的项目结构是这样的:
在资产中有两个额外的文件夹:js
和css
,其中包含文件。我的server.js
文件如下所示:
module.exports.start = function(config) {
var express = require(config.MODULES_DIR + 'express'),
app = express(),
http = require('http'),
server = http.createServer(app),
io = require(config.MODULES_DIR + 'socket.io').listen(server),
fs = require('fs'),
path = require('path');
server.listen(config.APP_PORT);
// Setting static files dir to load it automatically
app.use(express.static(config.ROOT_DIR + '/assets/'));
console.log(config.ROOT_DIR + '/assets/');
app.get('/', function (req, res) {
res.sendfile(dir + 'index.html');
});
}
config.ROOT_DIR + '/assets/'
返回/Sites/node_project/assets/
,这是文件的确切位置。要100%确定我运行ls /Sites/node_project/assets/
并返回css js
,但是当我打开http://192.168.1.109:4935
时,我只得到index.html
而没有js
或{{1如果我尝试直接打开某个文件,例如css,我会得到css
...
我做错了什么?
更新
找到解决方案,它应该像Cannot GET /assets/css/jquery.mobile.css
答案 0 :(得分:0)
尝试更像这样的事情:
/* serves all the static files */
app.get(/^(.+)$/, function(req, res){
console.log("Static file request for: " + req.params);
res.sendfile( __dirname + "/assets" + req.params[0]);
});
这是一个很好的教程:http://www.mfranc.com/node-js/node-js-simple-web-server-with-express/