首页 > 解决方案 > 图像和 css 不适用于 Handlebars

问题描述

我正在研究我的投资组合并使用车把。我的根文件夹中有我的主 index.js。据我所知,它正在工作。我的主页(索引)页面在我的浏览器中本地加载,但它的 css 和图像不加载。我也有我的视图文件夹,其中我的 layout.hbs 和 index.hbs 是。然后我还有我的图像/css 文件夹,我希望我的 index.hbs 可以在其中找到我的图像/css(我在我的 index.js 中的 res.render 中作为参数传入)。但是,当我加载主页时,出现以下错误:

  1. “[错误] 加载资源失败:服务器响应状态为 404(未找到)(style.css,第 0 行)”
    &&
  2. “[错误] 加载资源失败:服务器响应状态为 404(未找到)(resize_profile_pic.jpg,第 0 行)”

这是我的 index.js:

// === VARIABLES === //
var express = require('express');
var app = express();
var handlebars = require("express-handlebars");
var path = require("path");
var router = express.Router();  //creates a router object, do I even need this???

 //===== view ENGINE SET UP =====//
app.set('view engine', 'handlebars');
app.engine(
    "hbs",
    handlebars({
      layoutsDir: path.join(__dirname, "views/layouts"),
      partialsDir: path.join(__dirname, "views/partials"), 
      extname: ".hbs", 
      defaultLayout: "layout" 
    })
);
app.set("views", path.join(__dirname, "views")); 
app.set("view engine", "hbs");
//NOT sure what this does??? Or if I need it???
app.use("/public", express.static(path.join(__dirname, "public")));

//saw this on a previous post but doesn't seem to work???
app.use(express.static('images'));
// Route to display static src images  - also saw this on a previous post???
app.get("/static", (req, res) => {
    res.render("static");
});


//===== .GET PAGES =====//
router.get('/', (req, res, next) => {       //also tried app.get, do I need router???
    res.render('index', {title: 'Home Page', css:['style.css']});
});
app.use('/', router);

app.listen(3000);

这是我的图像在 index.hbs 中的编码方式:

<img src="/images/resize_profile_pic.jpg" alt="">

*我还尝试了“images/resize_profile_pic.jpg”和 nada。

标签: node.jsexpresshandlebars.jsexpress-handlebars

解决方案


推荐阅读