标签: server-side-rendering

Angular 11 SSR 已编译,但产品构建存在问题,并且浏览器中没有显示任何内容

{
   "$schema":"./node_modules/@angular/cli/lib/config/schema.json",
   "version":1,
   "newProjectRoot":"projects",
   "projects":{
      "new-asasa":{
         "projectType":"application",
         "schematics":{
            
         },
         "root":"",
         "sourceRoot":"src",
         "prefix":"app",
         "architect":{
            "build":{
               "builder":"@angular-devkit/build-angular:browser",
               "options":{
                  "outputPath":"dist/new-asasa/browser",
                  "index":"src/index.html",
                  "main":"src/main.ts",
                  "polyfills":"src/polyfills.ts",
                  "tsConfig":"tsconfig.app.json",
                  "aot":true,
                  "assets":[
                     "src/favicon.ico",
                     "src/assets"
                  ],
                  "styles":[
                     "src/styles.scss",
                     "node_modules/intl-tel-input/build/css/intlTelInput.css",
                     "node_modules/ng-zorro-antd/ng-zorro-antd.min.css"
                  ],
                  "scripts":[
                     "node_modules/intl-tel-input/build/js/intlTelInput.min.js",
                     "node_modules/jquery/dist/jquery.min.js"
                  ],
                  "allowedCommonJsDependencies":[
                     "rxjs-compat",
                     "lodash"
                  ]
               },
               "configurations":{
                  "production":{
                     "fileReplacements":[
                        {
                           "replace":"src/environments/environment.ts",
                           "with":"src/environments/environment.prod.ts"
                        }
                     ],
                     "optimization":true,
                     "outputHashing":"all",
                     "sourceMap":false,
                     "namedChunks":false,
                     "extractLicenses":true,
                     "vendorChunk":false,
                     "buildOptimizer":true,
                     "budgets":[
                        {
                           "type":"initial",
                           "maximumWarning":"4mb",
                           "maximumError":"7mb"
                        },
                        {
                           "type":"anyComponentStyle",
                           "maximumWarning":"20kb",
                           "maximumError":"20kb"
                        }
                     ]
                  }
               }
            },
            "serve":{
               "builder":"@angular-devkit/build-angular:dev-server",
               "options":{
                  "browserTarget":"new-asasa:build"
               },
               "configurations":{
                  "production":{
                     "browserTarget":"new-asasa:build:production"
                  }
               } …
Run Code Online (Sandbox Code Playgroud)

typescript server-side-rendering angular-universal angular

5
推荐指数
1
解决办法
1480
查看次数

NextJS 针对 SSG/SSR 和 Google Analytics/cookie 的建议

我有一个 NextJS 站点,它是在构建时静态生成的(SSG)。

接下来我需要实现两件事

  1. 谷歌分析
  2. 符合 GDPR 的选择加入 Cookie 选项

第一个很容易做到,但是我正在努力使其符合 GDPR。问题是当我的网站是静态生成时,我无法访问服务器端的 cookie。这意味着,在不知道用户是否同意服务器上的 cookie 的情况下,我无法与页面的其余部分一起提供(或不提供)分析脚本。

可能的解决方案:

  1. 在客户端处理所有事情 - 请求同意,然后动态地将 GA 标签添加到<head>. 然而我担心这会对分析产生负面影响,或者完全破坏它。有人知道吗?

  2. 将我的网站更改为服务器端呈现 (SSR)。如果可能的话我很想避免这种情况。我对 SSG 网站的运行速度感到非常满意。它本质上只是一个基本的博客,因此为了分析而必须进行转换将是一种耻辱。

  3. 还有其他想法吗?...

如果有人有这方面的经验,无论他们使用 Next 还是 Nuxt 等,您的意见将不胜感激!

提前致谢

google-analytics static-site reactjs server-side-rendering next.js

5
推荐指数
1
解决办法
6166
查看次数

MUI React SSR 问题

我们正在使用 React-MUI 为现有项目设置服务器端渲染。除了造型之外,我们已经把一切都准备好了。我们的 CSS 都不会加载到服务器端渲染。任何内联 CSS 都可以正常工作,但在文件开头定义并绑定的任何工作表都export default withStyles(styles)(Page)不起作用。

我们的样式定义如下:

const styles = (theme) => ({ 
    root{
        //some CSS Here ...
    }...
});
Run Code Online (Sandbox Code Playgroud)

然后必然会倒出道具

export default typeof window !== 'undefined'
    ? withRouter(connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(Home)))
    : withStyles(styles)(Home);
Run Code Online (Sandbox Code Playgroud)

并通过以下方式访问

const {classes} = this.props;
//then in render
<div className={classes.root}>...</div>
Run Code Online (Sandbox Code Playgroud)

所有classes.someClassNameCSS 在服务器端渲染中都不起作用,但当我们在浏览器中渲染时,它会正常工作。当前的想法是尝试使用<ThemeProvider/>MUI 的包装器,但任何建议都会受到赞赏。

谢谢!

reactjs material-ui server-side-rendering

5
推荐指数
1
解决办法
1995
查看次数

启动客户端时 React SSR 闪烁

简化我的帖子:

我的 ssr 网页在启动客户端时闪烁,这意味着页面渲染服务器端渲染的 html,然后变为空白,然后开始重新加载所有内容。

详细说明:

我正在开发一个反应项目,我们决定将其从在客户端渲染更改为在服务器渲染。该项目包括react-router-dom,reduxreact-reduxmaterial-ui它附带react-jss, loadable/component,还通过 来处理头元素react-helmet-async,并且在 ssr 中它使用express.js这似乎是必须的。

  • 因为react-router-dom我做了文档上的所有内容。BrowserRouter在客户端和StaticRouterssr 中使用并向context其传递一个对象。
  • for reduxreact-redux我保存preloaded_state在窗口中的变量中,并在客户端获取它,然后将其传递给存储。还获取了一些外部数据以获取页面源上的内容。所以我在 ssr 中有一些请求和数据获取。
  • 因为material-ui我创建了一个new serverSideStyleSheet并收集了整个项目的所有样式。
  • 因为react-helmet-asyncHelmet为每个页面设置了不同的标签,收集不同的标题、描述和...个人。还有一个helmetProvidercsr 和 ssr 的包装器。
  • 起初我使用了,react-helmet但它与 .i 不兼容。renderToNodeStream我没有更改react-helmet-async,尽管我没有使用 renderToNodeStream 但renderToNodeStream希望将其迁移到有一天。
  • 关于express.js我按照文档所说使用它,但是在我添加之后,loadable/component …

reactjs redux server-side-rendering react-ssr loadable-component

5
推荐指数
0
解决办法
1611
查看次数

如何使用更新的 api url 从同一组件调用 getServerSideProps?

我想传递此函数中的参数,以便在应用某些过滤器时在同一页面上获取更新/过滤的数据?

这对于初始渲染工作正常,但我无法从同一组件获取更新的数据,因为该 getServerSideProps 函数位于我的组件之外。

我的组件

let API_URL = `https://api.spaceXdata.com/v3/launches?limit=100`
const spacex = ({ missions }) => {
  const [allMissions, setallMissions] = useState(missions)

  const filterResults = (filter, value) => {
    getServerSideProps(`${API_URL}&${filter}=${value}`) // but this is not accessible from here, getServerSideProps is undefined here as this is outside the function
  }

render() {
 return (
  {missions.map((mission) => <li>mission.name</li>)}
 )
}
Run Code Online (Sandbox Code Playgroud)
export const getServerSideProps = async (API_URL) => {
  const res = await fetch(API_URL)
  const missions = await res.json()
  if (!missions) {
    return …
Run Code Online (Sandbox Code Playgroud)

reactjs server-side-rendering next.js

5
推荐指数
1
解决办法
1146
查看次数

如何在不使用函数的情况下在 firebase 托管上渲染 ssr 项目?

我建立了一个网站并将其部署到 firebase,一切都正确呈现。我将项目架构更改为服务器端渲染,这意味着现在我运行“server.js”文件而不是“index.html”。有没有办法在不使用“函数”的情况下在 firebase 上托管我的 SSR 网站?我研究了网络,但找不到任何其他方法。

hosting firebase reactjs firebase-hosting server-side-rendering

5
推荐指数
2
解决办法
4879
查看次数

NextJS - getServerSideProps - 错误 400 - 错误请求

我在 NEXT JS 中使用 getServerSideProps 函数进行 fetch 时遇到问题。当我开始使用这个框架时,我可能做得不好。访问外部 API 的所有凭据都是正确的。当我在 React 中使用相同的参数进行获取时,它会为我带来信息,但是使用 Next JS 它会返回 400 - 错误请求。

\n

我将所有参数放在下面同一个块代码中,以便于理解。我使用像“”这样的凭据参数来保护隐私。他们是正确的,没有任何问题。

\n

注意:我相信我一定以错误的方式使用了 getServerSideProps 函数。我不知道除了编写函数之外是否还需要对 Next JS 进行任何配置。换句话说,这里显示的是我到目前为止实际写的内容。该程序直接从index.js 调用。

\n

这是文件夹结构:

\n

文件夹结构

\n

ListOrders 是我渲染页面的地方。它从我执行提取操作的 getServerSideProps 函数接收 {orders} 作为 props。

\n
const ListOrders = ({ orders }) => {\n  // Render orders through server side rendering (SSR)\n  return (\n    <div>\n      {/* If orders is an object than map over it to render the page, otherwise orders is an error message …
Run Code Online (Sandbox Code Playgroud)

javascript fetch-api server-side-rendering axios next.js

5
推荐指数
0
解决办法
1万
查看次数

使用 nuxt 检查 chrome 网络选项卡中的 API 调用

我是 Nuxt 新手,我想在我的网络选项卡中查看我的 API 调用。我知道 Nuxt 是 SSR,它不会在fetch()网络选项卡的挂钩中显示 API。我在网上搜索了很多,但找不到在网络选项卡中检查 API 调用的方法。所以我想知道是否有一种方法可以fetch()在网络选项卡中查看挂起的 API 调用,以便使用 Nuxt 检查它们?

fetch google-chrome-devtools vue.js server-side-rendering nuxt.js

5
推荐指数
0
解决办法
716
查看次数

使用构建文件在 Azure 上启动 Nuxt SSR 应用程序

根据这个 Nuxt 文档页面,一旦我运行yarn build,“Nuxt.js 将创建一个 .nuxt 目录,其中的所有内容都准备好部署在您的服务器托管上。”

根据其他一些 演练,还有一些其他必需的项目:、和 static/**package.jsonnuxt.config.js

其中一篇文章以及Nuxt 页面上有关使用 IIS 部署到 Azure 的说明表示server.js需要一个文件,但我想坚持“里面的所有内容都准备好部署”。我的 Azure 应用服务也是针对 Linux 设置的,而不是针对 IIS 设置的。

然而,在我部署这些文件/文件夹npm run start(映射到nuxt start)后,会抛出一个错误,指出 nuxt 不是可识别的命令。这是有道理的,因为我还没有安装这些软件包。

我还尝试使用node .nuxt/server.js和启动 ssr 应用程序node .nuxt/dist/server/server.js。这些都不起作用。

我真的想坚持所说的“Nuxt.js 将创建一个 .nuxt 目录,其中的所有内容都准备好部署在您的服务器托管上”,而不是在部署后复制node_modules或必须复制npm install

我在这里缺少哪些文件或命令,这可能吗?

  • 节点版本为14.16
  • Nuxt版本是2.15.3版本的全新安装

nuxt.config.js

export default {
  // Global page headers: https://go.nuxtjs.dev/config-head
  head: {
    title: "test-nuxt-app", …
Run Code Online (Sandbox Code Playgroud)

deployment azure vue.js server-side-rendering nuxt.js

5
推荐指数
1
解决办法
1273
查看次数

Algolia 和 Next.js - 索引更新和 getStaticProps 副作用

我有一个相当复杂的 Next.js 网站,主要是静态呈现的,并且我正在将 Algolia 搜索添加到该网站中。Algolia 的机制要求您使用他们的 API,并在每次发布附加内容时通知他们。

我的问题是在 Next 应用程序中您通知 Algolia 的位置。鉴于我的网站用于getStaticProps获取数据,我认为这是通知和更新 Algolia 的合理位置。它有效,但想知道其他人做了什么、最佳实践、权衡等等。

生命周期如下所示:

  • 通过 GraphQL 从数据库获取数据(使用 headless CMS Prismic)
  • 在发送到 Algolia 之前对 Next 内的数据进行标准化
  • 将数据发送到 Algolia(他们的系统会协调引用的旧/新记录uuid

实现这一点的代码:

// Use nextjs getStaticProps, destructure default params
export async function getStaticProps({ params, preview = false, previewData }) {
        
  // Data fetch (assume getAllNewsForLandingPage gets an array of obj)
  pageData.data = await getAllNewsForLandingPage(params.uid, previewData)

  // Format and normalize results
  const algoliaFormattedData = dataFormatter(pageData.data)

  // …
Run Code Online (Sandbox Code Playgroud)

reactjs algolia server-side-rendering next.js

5
推荐指数
0
解决办法
922
查看次数