![](/img/trans.png)
[英]Need to load and display HTML file before JS file, express.static not serving HTML file
[英]display and load html before js files using express.static
使用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);
route.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库和route.js的链接; 当我尝试执行sendFile时,无法识别jquery选择器$,因为js在html之前加载。 这就是为什么我试图使用express.static通过上面的操作加载所有文件的原因。
2)我一直在浏览器中收到消息“无法获取/”。 即使当我取出使用app.use(express.static)的前两行代码,而只是在目录“ public”中具有指向html的那一行时,我仍然会收到此消息。 如何正确显示home.html并在js文件执行之前完全加载它,以便我可以使用jquery选择器使按钮发生点击事件,从而使Ajax调用GET / list并显示list.html
您应该在应用程序的顶层(server.js?)声明静态文件夹,并全部声明一次。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.