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

时间:2017-01-02 08:38:37

标签: javascript express

当我使用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

1 个答案:

答案 0 :(得分:0)

您应该在应用程序的顶层(server.js?)声明静态文件夹,并为所有人声明一次。