angular - 使用 Universal SSR(服务器端渲染),构建生产版本后我该怎么办?
问题描述
我已经设法遵循 Angular Universal 上的 Angular.io 技术:服务器端渲染(https://angular.io/guide/universal)。
我到了最后,一切运行良好,没有错误,现在我的 dist 文件夹很好地分开了,如下所示:
/dist
/browser
/server
/server.js
npm run serve:ssr 效果很好,网站显示很棒,最重要的是我可以在页面源代码中看到所有内容都编译得很好。
不幸的是,所有文档似乎都停在那里,所以我的网站在localhost:4000
.
在渲染之前,我只是将里面的所有内容上传/dist
到我的网络服务器并且它工作正常。
我已经用我当前的/dist
设置尝试过这个,我从我的网络服务器收到一条禁止消息。我瞄准,/server.js
我看到了源代码。
关于我从这里去哪里的任何线索?很抱歉,如果它是愚蠢的!
解决方案
如果无法静态提供文件,您需要设置一个网络服务器来处理请求并将它们重定向到 nodejs 通用服务器。
以 Nginx 为例
location / {
index index.html;
try_files $uri @universal;
}
#Transfer to angular universal handler
location @universal{
proxy_pass http://localhost: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;
}
推荐阅读
- postgresql - Talend Erreur : talend 下的数据导入问题(postgres 到 postgres)
- javascript - 在 HTML 输入中显示 JavaScript 变量的值
- google-sheets - 如何在 Xpath 中使用 NOT 用于 IMPORTXML 函数?
- dictionary - 在 Python 中从响应行中删除字符
- excel - 如何使用表单中的可下载链接在 Excel 中添加完整图像
- socket.io - 属性“服务器”是私有的,只能在“套接字”类中访问
- flutter - Flutter: Call a function when message received from websocket
- compiler-construction - 是否应该将所有可能的 Ascii 字符添加到有限自动机的转换表中
- python - 使用 pandas 保留字符串文件中的 N 个第一个元素
- c# - Gridview 使用相同的方法从一个按钮事件而不是另一个按钮事件更新