繁体   English   中英

为什么Node.js找不到我的文件

[英]Why can't Node.js find my files

我使用Node.js作为服务器,但在处理JS和CSS文件时遇到了一些麻烦。 由于某种原因, index.html似乎找不到它们。 加载浏览器时,出现以下错误:

在此处输入图片说明

我的文件系统结构:

public
    css
        main.css
        normalize.css
    js
        main.js
        upload.js
        plugins.js
views
    index.html
server.js

HTML

<head>
    <meta charset="utf-8">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <title></title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link rel="manifest" href="../public/site.webmanifest">
    <link rel="apple-touch-icon" href="../public/icon.png">

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
    <link rel="stylesheet" href="../public/css/normalize.css">
    <link rel="stylesheet" href="../public/css/main.css">

    <script src="../public/js/vendor/modernizr-3.5.0.min.js"></script>
    <script
        src="https://code.jquery.com/jquery-2.2.4.min.js"
        integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="
        crossorigin="anonymous"></script>    
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js">
    </script>
    <script src="../public/js/plugins.js"></script>
    <script src="../public/js/main.js"></script>
    <script src="../public/js/upload.js"></script>
</head>

server.js

var express = require("express");
var app = express();
var path = require("path");

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

app.get('/', function(req, res){
    res.sendFile(path.join(__dirname, 'views/index.html'));
});

我的猜测是我在server.js错误地提供了公用文件夹。 当我尝试直接在浏览器中访问该文件夹时,出现“ 无法获取/ public” 任何专家都可以在这里帮助我吗?

您加载静态资产的方式是错误的。 Express查找相对于静态目录的文件,因此静态目录的名称不应是URL的一部分。

如果您使用app.use(express.static(path.join(__dirname, 'public'))); ,则可以在http:// host:port / css / *或http:// host:port / js / *加载静态资产。

如果使用app.use('/public', express.static(path.join(__dirname, 'public'))); ,则可以从公共目录的/ public路径加载静态资产。 例如, http:// host:port / public / css / *

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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