无法加载资源:服务器在Node.js应用中以404(未找到)问题的状态响应

问题描述 投票:1回答:1

我需要帮助。我在这里查找了解决方案,但仍然找不到。所以我在Goorm ide中练习某些东西,但是我走到了尽头。我试图通过将脚本放在页脚中来链接main.js(位于js文件夹中)文件。但是我遇到一个错误,它说

Failed to load resource: the server responded with a status of 404 (Not Found)我还在lib文件夹中上传了一些png文件,尝试访问ejs模板中的文件后出现了同样的错误。

根文件夹由js,lib和views文件夹以及其他一些不相关的文件夹组成。

要链接footer.ejs(位于视图内的局部文件夹中的main.js),<script type="text/javascript" src="../../js/main.js"></script>。在lib / images文件夹中上传的png图像,我尝试从视图中的ejs模板访问这些图像,因此我使用了<img src="../lib/images/image1.png">。在两种情况下,我都会收到该错误。如果有人可以帮助,将不胜感激。这是我的根文件夹的样子-enter image description here

编辑:这是app.js代码:

require('dotenv').config();
var express = require("express");
var app = express();
var bodyParser = require("body-parser");
var indexRoute = require("./routes/index");
var flash = require("connect-flash-plus");
var session = require('express-session');

// APP CONFIG
app.use(express.static(__dirname + "/public"));
app.set("view engine", "ejs");
app.use(bodyParser.urlencoded({extended:true}));
app.set('json spaces', 2);
app.use(session({
    secret: 'boom',
    cookie: { maxAge: 60000 },
    saveUninitialized: true,
    resave: true
}));

app.use(flash());

app.use(function(req, res, next) {
    res.locals.error = req.flash("error");
    next();
});


// routes

app.use(indexRoute);

app.listen(3000, function(){
    console.log("Server has started");
})
html node.js
1个回答
1
投票

您的Express配置指定将从public目录访问所有静态文件:

app.use(express.static(__dirname + "/public"));

这意味着您要在Web浏览器中访问的任何文件都必须在此目录(或其子目录)中。

例如,如果要访问main.js,并且它位于public/main.js中,则可以像这样在前端访问它:

<script type="text/javascript" src="/main.js"></script>

请注意,在前端,不得包含public/前缀。

© www.soinside.com 2019 - 2024. All rights reserved.