服务器端渲染静态 html 使用 NodeJS 和路由
Server Side rendering static html with NodeJS and routing
我有一个 Angular 4 应用程序,它有很多用户可以与之交互的静态内容。
我面临的问题是服务器端呈现应用程序,以便 google 可以引用其内容。
您可能知道,一旦您使用 UI 库(例如 Angular Material 或 PrimeNG...
,从服务器渲染一个 Angular 4 应用程序真的很痛苦
我试图实现的想法是在客户端生成所有页面,将 html 保存在单独的 html 文件中,并让 NodeJS 以静态方式呈现这些文件以便google在解析网站时能够看到,同时也为用户加速渲染。
我所有的 url 都遵循这种模式:
https://www.mywebsite.com/XXXX/page_id/yyyy
问题是如何从 url 中提取 page_id,并将之前创建的静态 html 文件 (page_id.html) 渲染到同一个 [=31] =] ?
由于我使用静态 html,这是我想出的解决方案:
var express = require("express");
var path = require("path");
var app = express();
app.get('*.*', express.static(path.join(__dirname)));
app.use(express.static(path.join(__dirname)));
app.get('/',function(req,res){
res.sendFile(path.join(__dirname+'/index.html'));
});
app.get('/xxx/:pageId/yyy', function(req, res) {
res.sendFile(path.join(__dirname+'/'+req.params.pageId + '.html'));
});
我有一个 Angular 4 应用程序,它有很多用户可以与之交互的静态内容。 我面临的问题是服务器端呈现应用程序,以便 google 可以引用其内容。 您可能知道,一旦您使用 UI 库(例如 Angular Material 或 PrimeNG...
,从服务器渲染一个 Angular 4 应用程序真的很痛苦我试图实现的想法是在客户端生成所有页面,将 html 保存在单独的 html 文件中,并让 NodeJS 以静态方式呈现这些文件以便google在解析网站时能够看到,同时也为用户加速渲染。
我所有的 url 都遵循这种模式: https://www.mywebsite.com/XXXX/page_id/yyyy
问题是如何从 url 中提取 page_id,并将之前创建的静态 html 文件 (page_id.html) 渲染到同一个 [=31] =] ?
由于我使用静态 html,这是我想出的解决方案:
var express = require("express");
var path = require("path");
var app = express();
app.get('*.*', express.static(path.join(__dirname)));
app.use(express.static(path.join(__dirname)));
app.get('/',function(req,res){
res.sendFile(path.join(__dirname+'/index.html'));
});
app.get('/xxx/:pageId/yyy', function(req, res) {
res.sendFile(path.join(__dirname+'/'+req.params.pageId + '.html'));
});