SSR 仅在我重新加载主页时渲染 / url(Angular 16、延迟加载、Pm2)

问题描述 投票:0回答:1

当我在本地启动 Angular 离子应用程序并刷新页面(所有页面)时, 我看到这些控制台日志。

但是,当我将其部署在生产中的 PM2 上时,我的控制台日志仅出现在主页上。

我也想在内部页面上为 Facebook 动态设置元标签。

本地主机 enter image description here

产品 enter image description here 这是 server.ts 文件中的一段代码

const proxyConfig = environment.production ?
  require('./proxy.conf-prod.json') :
  require('./proxy.conf-dev.json');
console.log(proxyConfig)

export function app(): express.Express {
  const app = express();
  const distFolder = join(process.cwd(), 'dist/monapp/browser');
  const index = existsSync(join(distFolder, 'index.original.html')) ? 'index.original.html' : 'index';

  app.engine('html', ngExpressEngine({
    bootstrap: AppServerModule,
  }));
  const staticFolder = join(process.cwd(), 'dist/monapp/browser/assets');
  app.use('/usr/share/nginx/html/dist/monapp/browser/assets', express.static(staticFolder, {
    maxAge: '1y'
  }));
  const distFolderCustom = environment.production ? "/usr/share/nginx/html/dist/monapp/browser" : distFolder
  app.set('view engine', 'html');
  app.set('views', distFolderCustom);

  const apiProxy = createProxyMiddleware(proxyConfig['/api']);

  app.use('/api', apiProxy);

  app.get('*.*', express.static(distFolder, {
    maxAge: '1y'
  }));

  app.get('*', (req, res) => {
    console.log('SSR requested for URL:', req.originalUrl);

    res.render(index,
      {req, providers: [{provide: APP_BASE_HREF, useValue: req.baseUrl}]},
      async (err, html) => {
        if (html) {
          const resCheck = await checkAndAddTags(html, req.originalUrl).then();
          res.send(resCheck);
        } else {
          res.send(html);
        }
      });
  });
  return app;
}

“我想在内部页面上查看控制台日志并刷新它们。这是关于使用基于页面的 setMetadata 设置 checkAndAddTags 。”

angular ionic-framework progressive-web-apps server-side-rendering pm2
1个回答
0
投票

经过一整天的研究, 我刚刚意识到我的 nginxconf 有问题

好的配置是

 location / {
        proxy_pass http://127.0.0.1:4000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

location / {
try_files $uri $uri/ /index.html;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto https;
        proxy_redirect off;

        # Universal rendering configuration
        proxy_pass http://127.0.0.1:4000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_cache_bypass $http_upgrade;
}
© www.soinside.com 2019 - 2024. All rights reserved.