Node.js - не может получить доступ к статическим файлам внутри папки маршрута - PullRequest
0 голосов
/ 27 мая 2018

Мои статические файлы отлично работают на любом маршруте в app.js.Но мои статические файлы не загружаются для каких-либо маршрутов, которые есть в моем файле /routes/blog.js.

  Folder structure:

  Project
  ├── app.js 
  │ 
  │ 
  ├── public 
      └──  bootstrap...  
      └──  img...
  │
  │  
  ├──views
      └── index.html
      └── 404.html
      └── etc..
  │ 
  │ 
  ├──routes
       └── blog.js

Вот мой файл app.js

  const express = require('express');
  const app = express(); 
  const path = require('path'); 
  const blog = require('./routes/blog') 
  //Couple other requires...


  // Middleware
  app.use(express.static(path.join(__dirname, 'public')));
  app.use('/blog', blog)


  // Various get routes...



  // Start our server on port 3000
  app.listen(3000, () => console.log('Node app listening on port 3000...'));

Вот мой/routes/blog.js file

  const express = require('express'); 
  const router = express.Router(); 


  router.get('/', (req, res) => {
    res.render('blog.html');
  });


  // Post a blog post
  router.route('/post')
    .get( (req, res) => {
    res.render('post.html');
    })

    .post( (req, res, next) => {
       //STUFF
    res.redirect('/blog');
    });

  module.exports = router;  

Когда я просматриваю исходный код страницы на любой странице, которая проходит через файл app.js, я указываю на htttp: // localhost: 3000 / bootstrap / bootstrap.min.css/ но когда я просматриваю исходный код для любой страницы, которая проходит через файл blog.js (например, если я захожу в localhost: 3000 / blog / post), моя точка зрения указывает на htttp: // localhost: 3000 / blog / bootstrap / bootstrap.min.css / и статические файлы не загружаются

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Я получил его на работу, изменив

app.use(express.static(path.join(__dirname, 'public')));

на

app.use(express.static('public'));

0 голосов
/ 27 мая 2018

Добавьте в вашways.js

const DIR = path.join(__dirname, 'routes');

и измените get на:

router.get('/', (req, res) => {
  res.render(path.join(DIR, 'blog.html'));
});
...