赢得文件'如果在根目录中,则不加载

Files won't load if in root directory?

本文关键字:根目录 加载 如果 文件      更新时间:2023-09-26

我的文件结构有一个奇怪的问题。出于某种原因,在创建并运行服务器之后,我无法运行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也指向页面而不是视图。

关于为什么会出现这种情况,有什么建议吗?提前谢谢。

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