在开发网站时,我遇到了一个问题,即如何将我的静态CSS,JS和图像文件加载到我的网站中。导航到.index文件或任何路由树后,我的静态目录就会加载错误,并且路由索引突然添加到静态文件目录路径中。
我已经编写了一个yelpcamp应用程序,我正在对该应用程序进行建模,因为它写的很好,但是由于某种原因抛出了这个特定错误,我找不到任何资源来纠正。
具有所有声明和静态文件加载的主app.js文件
// REQUIREMENTS
var express = require("express"),
app = express(),
bodyParser = require("body-parser"),
mongoose = require("mongoose"),
methodOverride = require("method-override"),
nodemailer = require("nodemailer"),
expressSanitizer= require("express-sanitizer"),
// MODELS
blog = require("./models/blog"),
// ROUTES LOCATIONS
indexRoutes = require("./routes/index"),
blogRoutes = require("./routes/blog"),
contactRoutes = require("./routes/contact");
// SETUP
mongoose.connect("mongodb://localhost/*ChangedForPrivacy*");
app.use(bodyParser.urlencoded({extended: true}));
app.set("view engine", "ejs");
app.use(express.static(__dirname + "/public"));
app.use(methodOverride("_method"));
// ROUTE INDEX
app.use("/", indexRoutes);
app.use("/contact", contactRoutes);
app.use("/blog", blogRoutes);
这是我的路由文件夹中的blog.js文件,在这里我注意到静态文件已正确加载
// REQUIREMENTS
var express = require("express"),
Posts = require("../models/blog"),
router = express.Router();
// INDEX- SHOW ALL Posts
router.get("/", function(req,res){
// find all POSTS
Posts.find({}, function(err, allPosts){
if(err){
console.log(err);
} else{
// this is index because lots of paths are derived from it (landing pages are separate entities)
res.render("blog/home",{posts: allPosts});
}
});
});
// NEW (FORM PAGE)
router.get('/new', function (req,res){
res.render("blog/newpost");
})
// CREATE (POST TO PAGE)
// EDIT (PUT TO PAGE)
// DELETE
// EXPORT TO ROUTER
module.exports = router;
/ blog / home页面完美地加载了静态CSS,JS,但是一旦您进入/ blog / newpost,它就会更改静态文件的路径,现在将/ blog包含在其中。我希望路由结构中的第一个app.get能够正常工作,它们都会全部使用,但是我茫然为什么它会继续添加其他路由目录。
答案 0 :(得分:0)
我在我的partials / header.ejs文件中发现了我的错误。我在静态CSS / JS文件的根目录之前省略了“ /”,因此路由器遵循其路径并添加了正确的路由。