Маршрутизатор неправильно обрабатывает загрузку файлов - PullRequest
0 голосов
/ 16 мая 2019

При разработке моего сайта я столкнулся с проблемой загрузки моих статических файлов 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 page загружает статический CSS, JS отлично, нокак только вы попадаете в / blog / newpost, он меняет путь статических файлов и теперь включает в себя / blog.Я ожидаю, что если первый app.get в структуре маршрута будет работать, все они будут следовать, но я не понимаю, почему он продолжает добавлять дополнительный каталог маршрутов.

1 Ответ

0 голосов
/ 17 мая 2019

Я нашел свою ошибку в файле partials / header.ejs.Я опустил "/" перед корнем моих статических файлов CSS / JS, чтобы маршрутизатор следовал по своему пути и добавил маршрут, как это должно быть правильно.

...