当我使用express.static时,我很难在浏览器上显示我的home.html文件内容。我的目录和文件布局是:
dir main
-server.js
dir subMain
dir routing
-routes.js
dir public
-home.html
-list.html
server.js的代码
var path = require('path');
var express = require('express');
var app = express();
//Renamed the path with the correct directory names
var htmlRoutes = require('./subMain/routing/routes.js')(app, path, express);
routes.js的代码
module.exports = function(app, path, express){
//This path.join should lead to 'subMain'
app.use(express.static(path.join(__dirname + '..')));
//This path.join should lead to 'app'
app.use(express.static(path.join(__dirname + '..', '..')));
app.use(express.static(path.join(__dirname + '..', 'public')));
app.listen(10003, function(){
console.log('connected on 10003')
})
}
目前我有两个问题。
1)我正在尝试使用express.static而不是sendFile,因为在我的home.html文件中,我有一个指向jquery库和routes.js的链接;当我尝试执行sendFile时,jquery选择器$未被识别,因为js在html之前加载。这就是为什么我试图通过执行上面的操作来使用express.static来加载所有文件。
2)我一直在浏览器中收到“无法获取/”的消息。即使我拿出使用app.use(express.static)的前两行代码,并且只是导致了'public'目录中的html,我仍然会得到这条消息。如何正确显示home.html并在我的js文件之前完全加载它以便我可以使用jquery选择器为按钮发出一个click事件,该按钮将对GET / list进行Ajax调用并显示list.html
答案 0 :(得分:0)
您应该在应用程序的顶层(server.js?)声明静态文件夹,并为所有人声明一次。