假設我們有一個 JSON:
[
{
"id": 1,
"title": "Title 1",
"description": "Description 1"
},
{
"id": 2,
"title": "Title 2",
"description": "Description 2"
},
{
"id": 3,
"title": "Title 3",
"description": "Description 3"
}
]
還有一個名為 index.ejs 的 EJS 檔案
<!DOCTYPE html>
<html lang="en">
<body>
<% data.forEach(item => { %>
<h1><%- item.title %></h1>
<p><%- item.description %></p>
<% }) %>
</body>
</html>
我可以簡單地使用這個 javascript 代碼通過 express 呈現資料:
const express = require("express");
const app = express();
const data = require("./data.json");
app.set("view engine", "ejs");
app.get("/", (req, res) => {
res.render("index", { data });
});
app.listen(4000);
但是,如果我想創建 3 個 HTML 頁面并通過 Nginx 提供它們怎么辦?我可以fs用來創建 html 檔案。但問題是,如何使用 EJS 創建 3 個生成的頁面,但通過 Nginx 而不是 node.js 呈現頁面app.get()?
uj5u.com熱心網友回復:
如果資料是靜態的(預先知道并且不會更改),您可以通過撰寫使用 EJS 生成 HTML 檔案的單獨 nodejs 腳本然后保存生成的 HTML 來生成 HTML 頁面作為某些構建程序的一部分檔案到 nginx 特定目錄,讓 nginx 從那里提供靜態網頁。
我為 github.io 網站做了類似的事情,我使用 nodejs 腳本和模板引擎預生成靜態 HTML 頁面,然后通過 github.io 提供這些頁面。這讓我可以使用模板的特性(通用頁眉、通用頁腳、通用樣式等)來生成一組靜態 HTML 頁面。當我想更新網頁時,我可以只更新模板并重新生成,而不是手動編輯每個 HTML 頁面。
如果資料是動態的,那么 nginx 不知道如何生成它們,因為它不直接支持這些型別的模板引擎(專為 Javascript 引擎而設計),因此您將堅持從 nodejs 提供 EJS 模板。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/416566.html
標籤:
下一篇:如何使這種大小寫不敏感
