拒绝在渲染时应用来自auth / css的样式

问题描述

问题:

我很困惑为什么我的render不能从css加载imagesuploads

当我不要尝试登录时,每个页面都会加载images,而css会应用其样式。

但是当我尝试这样渲染我的页面时:

if(!results.length){
  res.status(401).render('home/login',{
    message: 'The email or password is incorrect'
  });
}

我收到此错误

enter image description here

我意识到它说...:3000/auth/css/..-不是要加载auth吗?

这是我的树

Index.js
|
├───controllers
├───helpers
│
├───public
│   ├───css
│   ├───javascript
│   └───uploads
├───routes
│   └───home
└───views
    ├───home
    ├───layouts
    └───partials
        └───home

index.js

const express = require('express');
const path = require('path');
const exphbs = require('express-handlebars');
const bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');

const app = express();

// Public path
app.use(express.static(path.join(__dirname,'./public')));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

//Parse URL encoded bodies
app.use(express.urlencoded({ extended: false }));
//Parse JSON bodies as sent by API clients
app.use(express.json());
app.use(cookieParser());

// View engine
app.engine('handlebars',exphbs({defaultLayout: 'home-index'}));
app.set('view engine','handlebars');

// Routing
app.use('/',require('./routes/home/page_routes'));
app.use('/auth',require('./routes/auth'));


app.listen(3000,() => {
    console.log('Listening');
  });

视图/布局/home-index.handlebars

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="css/home.css">
    <title></title>
  </head>
  <body>
    {{> home/home-nav}}

    {{{body}}}



  </body>
</html>

routes / auth.js

const { db } = require('./db');
var jwt = require('jsonwebtoken');
var bcrypt = require('bcryptjs');
var { promisify } = require('util');


// Login
exports.login = async function(req,res) {
    try {
      var {email,password} = req.body;
  
      if(!email || !password) {
        return res.status(400).render('home/login',{
          message: 'Please provide an email and password' ///////////////// This is the problem
        });
      }
  
      db.query('select * from users_website where email = ?',[email],async function(error,results){
        console.log(results)
  
        if(!results.length){
          res.status(401).render('home/login',{
            message: 'The email or password is incorrect' ///////////////// This is the problem
          });
        }
        else{
          var id = results[0].id;
          var token = jwt.sign({ id },'SuperSecretPassword9981998',{
            expiresIn: '90d'
          });
  
          console.log("The token is: " + token);
  
          var cookieOptions = {
            expires: new Date(
              Date.now() + 90 * 24 * 60 * 60 * 1000
            ),httpOnly: true
          }
  
          res.cookie('jwt',token,cookieOptions);
          res.status(200).redirect("/");
        }
      });
  
    } catch (e) {
      console.log(e);
    }
  }

路线/家庭/ page_routes

const express = require('express');
const router = express.Router();
const auth_controller = require('../../controllers/auth');

// Home router
router.get('/',auth_controller.isLoggedIn,(req,res) => {
    res.render('home/index');
});

// Login
router.get('/login',res) => {
    res.render('home/login');
});

module.exports = router;

问题

如何消除错误-尝试呈现页面时?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)