Angular SSR未在浏览器上的页面源中显示服务器部署SSR的API中的数据,但正在处理本地产品构建
我有一个angular 7应用程序,并制作了该应用程序的通用版本(用于SEO目的的SSR) 应用程序像以前一样平稳运行,来自API的所有数据在本地模式和服务器模式下都能完美显示 但问题是,当我在浏览器上查看“页面源”时,如果从服务器获取API数据,则在浏览器中不可见 package.jsonAngular SSR未在浏览器上的页面源中显示服务器部署SSR的API中的数据,但正在处理本地产品构建,angular,server-side-rendering,Angular,Server Side Rendering,我有一个angular 7应用程序,并制作了该应用程序的通用版本(用于SEO目的的SSR) 应用程序像以前一样平稳运行,来自API的所有数据在本地模式和服务器模式下都能完美显示 但问题是,当我在浏览器上查看“页面源”时,如果从服务器获取API数据,则在浏览器中不可见 package.json "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"install:clean": "rm -rf node_modules/ && rm -rf package-lock.json && npm install && npm start",
"compile:server": "webpack --config webpack.server.config.js --progress --colors",
"serve:ssr": "node dist/server",
"build:ssr": "npm run build:client-and-server-bundles && npm run compile:server",
"build:client-and-server-bundles": "ng build --prod && ng run nthexam:server:production",
},
命令npm-run-build:ssr:stage&&npm-run-service:ssr
build-ssr应用程序,它在本地机器上运行良好
问题
如果在服务器(ubuntu)中部署了SSR,则浏览器上的页面源不显示API数据
然而,对于静态内容,它的作品都很好
在本地,its可以完美地处理静态数据和API数据,这两种数据都可以在本地主机的页面源代码中看到
经过一些搜索:
我正在使用cloudflare,我尝试禁用所有缓存,但仍然没有用
我试过这个:
但是在一些我没有任何控制台错误的页面中,即使在页面源中它也不显示数据,而在本地,无论声明的错误是什么,它都可以正常工作。页面源显示从服务器请求的静态文件。在客户端发生的任何事情,比如对服务器的API调用,都不会影响源代码。如果数据被解析到DOM中,您可以在xhr请求的网络选项卡或元素选项卡下的DOM中看到API数据。在本地设置中,所有API数据也显示在页面源代码中,否则SSR就没有用了。我想我有点糊涂了。你能从源代码中添加一些代码来显示有数据和没有数据吗?考虑一个条件,你必须在本地do:
npm run build:ssr:stage&&npm run service:ssr
上列出API中的所有帖子,然后检查页面源代码,它在浏览器的页面源代码中显示所有帖子。在服务器中执行相同操作:npm run build:ssr:stage&&npm run service:ssr
只显示静态内容,而不是浏览器上页面源中的API数据,例如:这是页面源//静态数据显示所有帖子//在本地显示所有帖子//在服务器中显示所有帖子此块为空
,但在这两种情况下,帖子都在页面上呈现?是的,所有帖子在UI中显示良好,只是在页面源中,这是不同之处。