我需要帮助。我在这里查找了解决方案,但仍然找不到。所以我在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(位于视图内的partials 文件夹中),我使用了
<script type="text/javascript" src="../../js/main.js"></script>. 上传到 lib/images 文件夹中的 png 图像,我尝试从视图中的 ejs 模板访问这些图像,所以我使用了
<img src="../lib/images/image1.png">. 我在这两种情况下都遇到了这个错误。如果有人可以提供帮助,我们将不胜感激。这就是我的根文件夹的样子 -

编辑: 这是 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");
})
Run Code Online (Sandbox Code Playgroud)
您的 Express 配置指定将从以下目录访问所有静态文件public:
app.use(express.static(__dirname + "/public"));
Run Code Online (Sandbox Code Playgroud)
这意味着您想要在 Web 浏览器中访问的任何文件都必须位于此目录(或其子目录)中。
例如,如果您想访问main.js,并且它的位置位于public/main.js,您可以在前端访问它,如下所示:
<script type="text/javascript" src="/main.js"></script>
Run Code Online (Sandbox Code Playgroud)
请注意,在前端,您不能包含public/前缀。
| 归档时间: |
|
| 查看次数: |
11353 次 |
| 最近记录: |