Node.js - 在路径文件夹内部无法访问静态文件

时间:2018-05-27 17:45:22

标签: node.js express static-files

我的静态文件在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文件

  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 :(得分:0)

添加到您的routes.js

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

并将get更改为:

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

答案 1 :(得分:0)

我通过改变

来实现它

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

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