Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 渲染时拒绝应用auth/css中的样式_Html_Css_Node.js_Handlebars.js - Fatal编程技术网

Html 渲染时拒绝应用auth/css中的样式

Html 渲染时拒绝应用auth/css中的样式,html,css,node.js,handlebars.js,Html,Css,Node.js,Handlebars.js,问题: Index.js | ├───controllers ├───helpers │ ├───public │ ├───css │ ├───javascript │ └───uploads ├───routes │ └───home └───views ├───home ├───layouts └───partials └───home 我很困惑为什么我的render没有从uploads加载我的css和images 当我不尝试登录时,

问题:

Index.js
|
├───controllers
├───helpers
│
├───public
│   ├───css
│   ├───javascript
│   └───uploads
├───routes
│   └───home
└───views
    ├───home
    ├───layouts
    └───partials
        └───home
我很困惑为什么我的
render
没有从
uploads
加载我的
css
images

当我不尝试登录时,每个页面都会加载它的
图像
css
应用它的样式

但当我尝试这样呈现我的页面时:

if(!results.length){
  res.status(401).render('home/login', {
    message: 'The email or password is incorrect'
  });
}
我得到这个错误

我意识到它说的是
…: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');
  });
视图/布局/主索引。把手

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');
  });

{{>主/主导航}
{{{body}}}

原因是您正在使用Handlebar文件中的相对URL加载资产,这意味着资产是相对于页面的URL加载的,在您的情况下,URL是
:3000/auth
。要解决此问题,请改用绝对URL

像这样:

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

    {{{body}}}



  </body>
</html>

{{>主/主导航}
{{{body}}}