• 1398/05/16

رندر کردن view در خروجی با کمک hbs و express :

با سلام ،

من یه فایل index.hbs دارم که داخلش یه html doc ساده هست و یه فایل css بهش لینک شده .

و داخل فایل اصلی route هایی با ()app.get دارم .

مشکل اینجاست که وقتی با استفاده از res.render فایل index.hbs رو رندر میکنم فایل css داخلش خونده نمیشه ، چون لینک فایل css از داخل route هایی که با ()app.get نوشته شدن عبور میکنه و لینک رو نمیشناسه .

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

برای حل این مشکل چه راهکاری وجود داره ؟

لینک سوال روی stackoverflow

 

با تشکر

 

  • 1398/05/16
  • ساعت 11:51

سلام دوست من

اکسپرس به صورت پیشفرض اصلا اجازه دسترسی به فایلی رو نمیده تا زمانی که به صورت static تعریف بشه

الان که فولدر assets رو به صورت استاتیک تعریف کردید درونش یک فولدر css بسازید و فایلهای css رو اینجا قرار بدید

الان در قالب index تنها کافیه مسیر فایل css در تگ لینک رو به صورت /css/main.css دیگه بقیه کارهارو خود اکسپرس میفهمه

مشکلی بود در خدمتم