【问题标题】:how can i render a partial view with its linked css files如何使用其链接的 css 文件呈现部分视图
【发布时间】:2019-12-14 05:07:01
【问题描述】:

我在我的 nodeJS 中使用 expresshbs 模块。 我正在尝试使用 res.render() 方法呈现我的视图。问题是,我的视图在没有 css 的情况下加载,因为 css 文件链接通过 express 并且不满足 app.get() 方法 中定义的任何 URL。所以我想知道,如果我尝试加载的视图包括链接到文件夹或 URL 的图像、css 和 JS 文件,我如何使用其链接文件呈现我的视图?

我的目录:
index.js
资产 / [css , 图片 , js] /
视图/部分/

我的 index.hbs 位于视图 (views/index.hbs) 中,加载时没有问题,但也没有链接的 css 文件

我尝试过的方法:
我在网络和堆栈溢出中搜索了我的答案,但我没有遇到任何问题。我曾尝试使用文件系统方法来读取文件并输出它们,或者试图寻找一些方法来做到这一点,但我没有找到任何答案。

我的 index.js:

const path = require("path");
const express = require("express");
const app = express();
const hbs = require("hbs");

app.set("view engine", "hbs");
app.use(express.static(path.join(__dirname, "./assets/")));

hbs.registerPartials(path.join(__dirname, "views/partials"), err => {
  if (err) {
    console.log(err);
  }
});

app.get("/", (req, res) => {
  res.render("index");
});

app.listen(3000, err => {
  if (err) {
    console.log(err);
  }
});

我收到的错误:
index.hbs 是在没有 css 的情况下加载的,当我单击页面源中的 css 链接时,我看到了这个 -->
无法获取 /assets/css/main.css
所以如果有人能告诉我如何解决这个问题,我将不胜感激?
(我几乎是 NodeJS 的初学者)

【问题讨论】:

    标签: node.js express partials express-handlebars


    【解决方案1】:

    我也是新手,想帮助你。 我不知道hbs,但我知道express。

    您能否尝试在路径中包含 css 文件:/css/main.css 所以你必须先删除资产。

    希望对您有所帮助,否则发布 index.html 文件可能是个好主意

    【讨论】:

    • 感谢您抽出宝贵时间提供帮助,我昨天得到了答案,我刚刚在资产中创建了一个 css 文件夹,我将链接 href 更改为 css/main.css 并自动表达认出来了,因为 assets 文件夹被定义为静态的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-12
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多