繁体   English   中英

使用express.static在js文件之前显示和加载html

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM