1

Express Docsによると、ビューを保存するための一般的なディレクトリを設定するために使用できます<Application>.set("views", "my/views/path");。各ルートに独自のビュー (およびその他のルート固有のコンテンツ) を持つ独自のディレクトリがあるようにプロジェクトをセットアップしました。私のサブドメインベースのアプローチを補完します。のようなことができるようにし<Router>.set("views", "router/views/");たいので、ページをレンダリングしたいときに、その特定のルーターres.render("homepage");の代わりに単に呼び出すことができます。res.render("<router>/views/homepage");

現在、ルートに次の設定がありますapp.js

app.set("views", join(__dirname, "domains"));
app.set("view engine", "ejs");
// ...
for (const d in domains)
{
    if (d === "root")
        continue;

    const router = domains[d];
    app.use(vhost(`${d}.${process.env.DOMAIN_ROOT}`, router));
}

私の「ブログ」ルーター(blog.website.comサブドメイン用)には、次のものがあります。

router.get("/", function(req, res)
{
    res.render("blog/views/index", {
        title: "My Tech Blog"
    });
});

"views"の行に沿って、各ルーターのディレクトリを指定できるようにしたいと思いますrouter.set("views")

4

1 に答える 1

0

このスレッドで提案されているサブアプリ パターンを使用します。

ルーターファイルの先頭にある行を次のように変更しました。

const router = require("express").Router();

const router = require("express")();

また、プロジェクトにルーターを使用する代わりに、サブアプリを使用して独立したビュー パスを指定するだけです。

router.set("view engine", "ejs");
router.set("views", join(__dirname, "domains"));
于 2019-09-18T00:10:01.893 に答える