如果在根目录中,文件将不会加载?

时间:2016-01-05 04:21:13

标签: javascript node.js express

我的文件结构有一个奇怪的问题。出于某种原因,在创建服务器并运行它之后,我无法让index.html运行,除非它在文件夹中。浏览器只显示“无法获取/”。对于我在index.html中使用的JS文件,也可以这样说。除非它们在文件夹中而不在根目录本身中,否则它们不会加载到index.html中。这是正常的还是因为我的server.js文件设置方式?

以下是代码:

var express = require('express');
var path = require('path');

var app = express();

app.use(express.static(path.join(__dirname, './views')));

app.listen(8000, function() {
    console.log("Listening on Port 8000");
})

文件夹/文件结构是:

Root Directory
    - node_modules
    - views
        -js
            -script.js
        - pages
            -about.html
            -contact.html
            -home.html
        - index.html
    - server.js

问题是文件结构是:

Root Directory
    - node_modules
    - pages
        -about.html
        -contact.html
        -home.html
    - index.html
    - script.js
    - server.js

express.static也指向页面而不是视图。

有关为何会出现这种情况的建议吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

简单地说,express.static(path.join(__dirname, './views'))将投放文件夹views中的所有文件 如果你去/pages/index.html。如果存在view,这将检查/page/index.html的文件夹index.html,它将为您提供此文件,否则它将检查您是否有任何句柄路由逻辑 您可以设置多服务静态。