一切正常,list.ejs也被正确呈现,直到我移动了public文件夹中的index.html和css文件,并添加了app.use(express.static(“public))位于app.js中。
const express = require("express");
const https = require("https");
const app = express();
app.set("view engine", "ejs");
app.use(express.static("public"));
app.get("/", function(req, res){
const today = new Date();
const options = {
week: 'long',
year:'numeric',
month:'long',
day:'numeric'
}
let day = today.toLocaleDateString("en-US", options);
res.render("list.ejs",{kindOfDay:day} );
});
app.listen(3000, function(){
console.log("Server is up and running on Port 3000.");
});
我的文件结构:
主文件夹||_***公开||***索引. html||****次浏览量|****列表.ejs
1条答案
按热度按时间roejwanj1#
app.use(express.static("public"));
通过使用GET发送请求的文件(如果在公用文件夹中找到这些文件)来完成请求。因此,如果找到并返回了文件,静态服务器将不会调用其next
函数参数。注意:如果URL中未提供文件名,则默认情况下express.static()
将查找index.html
。换句话说,如果文件由'express. static()'提供,则应用程序中的下一行
从未调用,并且
语句从未执行。
解决办法是
.ejs
文件放在公共目录中-它们不应该被直接提供。.ejs
扩展名请求的文件。在代码设置静态服务器之前。这是为了防止"index.html"文件出现在公共文件夹的根目录中。