标签: server-side-rendering

警告 Prop `href` 不匹配。使用反应服务器端渲染

我正在使用react-router-dom并且我猜测这是导致问题的原因,但我不知道从哪里开始寻找或如何解决它。我也收到类似的错误Warning: Did not expect server HTML to contain a <nav> in <div>

正如我所说,我不确定在哪里查看,所以如果您认为某些代码会有所帮助,请告诉我,我会发布它。否则,我可以发布用于执行 SSR 的代码。

编辑:确切错误:Warning: Prophrefdid not match. Server: "/profile/5a073dc44cb45b00125e5c82" Client: "profile/5a073dc44cb45b00125e5c82"

我已经检查了客户端,它/profile/:id不确定它在哪里说没有/,至于<nav>in的另一个错误,我的标题中<div>有一个nav,但我不确定如何“修复”那个.

import React from 'react';
import { renderToString } from 'react-dom/server';
import { StaticRouter } from 'react-router-dom';
import { Provider } from 'react-redux';
import { renderRoutes } from 'react-router-config';
import serialize from 'serialize-javascript';
import { Helmet } from 'react-helmet'; …
Run Code Online (Sandbox Code Playgroud)

javascript server-side reactjs server-side-rendering

7
推荐指数
2
解决办法
1万
查看次数

Next.js - 如何使用文字 onload 属性字符串值在 &lt;head&gt; 内添加 &lt;link&gt; 标记?

在 Next.js 项目中,我希望获得一些初始 HTML,其中的内容完全相同<head>

<link href="..." rel="stylesheet" media="print" onload="this.media='all'" />
Run Code Online (Sandbox Code Playgroud)

我在 Next.js<Head>组件内的代码中包含以下内容:

{ /* @ts-ignore */ }
<link href="..." rel="stylesheet" media="print" onload="this.media='all'" />
Run Code Online (Sandbox Code Playgroud)

如果没有@ts-ignore它,它会说:

类型“DetailedHTMLProps<LinkHTMLAttributes, HTMLLinkElement>”上不存在属性“onload”。您指的是“onLoad”吗?TS(2322)

如果我使用onLoad而不是onload我得到:

类型“string”不可分配给类型“(event: SyntheticEvent<HTMLLinkElement, Event>) => void”。TS(2322)

问题是我得到的服务器端生成的 HTML 有:

<link href="..." rel="stylesheet" media="print" />
Run Code Online (Sandbox Code Playgroud)

只有当页面重新水化后,它才会更新为:

<link href="..." rel="stylesheet" media="all" onload="this.media='all'">
Run Code Online (Sandbox Code Playgroud)

我在 GitHub 上发现了这个问题,但它没有帮助,因为我没有使用 Google Fonts,而是使用 Typography.com,所以我无法使用next-google-fonts: https: //github.com/vercel/next.js/issues/ 12984

我正在考虑ref向该link标签添加 a 并使用 设置属性setAttribute,这希望也能在服务器端工作,但想知道是否有更简单的方法来做到这一点。

javascript head reactjs server-side-rendering next.js

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

NextJs 多区域共享标头

我有 2 个应用程序管理外壳交付管理,我正在使用多区域来处理 NextJs 中的问题。

这两个应用程序都使用带有导航链接的共享标头,但我在从一个区域导航到另一个区域时遇到问题。

Admin-Shell使用 next.config.js 文件在端口 4201 上运行

module.exports = {
basePath: '/main',
rewrites: async() => {
    return [{
            source: '/delivery-management',
            destination: `http://localhost:4202/delivery-management`,
            basePath: false,
        },
        {
            source: '/delivery-management/:path*',
            destination: `http://localhost:4202/delivery-management/:path*`,
            basePath: false,
        },
    ];
},
};
Run Code Online (Sandbox Code Playgroud)

使用 next.config.js 文件在端口 4202 上运行的交付管理

module.exports = {
basePath: '/delivery-management',
rewrites: async() => {
    return [{
            source: '/main',
            destination: `http://localhost:4201/main`,
            basePath: true,
        },
        {
            source: '/main',
            destination: `http://localhost:4201/main/:path*`,
            basePath: true,
        },
    ];
},
}; …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs server-side-rendering next.js

7
推荐指数
1
解决办法
1960
查看次数

Angular 预渲染 i18n 混乱

我们严重依赖 Angular i18n 进行本地化。通常我们会使用命令为语言环境创建一个文件夹

ng build some-project --localize
Run Code Online (Sandbox Code Playgroud)

这将创建/dist/some-project/en//dist/some-project/de/

npm run prerender 仅在 /dist/some-project/browser/ 中输出一个,忽略 --localize 标志。我的问题是:预渲染选项是否仍处于某种测试阶段?我们现在应该避免它,还是我在这里遗漏了一些东西?

我的理解是我必须为每个区域创建单独的静态页面。

这是我的 angular.json

"prerender": {
      "builder": "@nguniversal/builders:prerender",
      "options": {
        "browserTarget": "offer:build:prod",
        "serverTarget": "offer:server:prod",
        "routes": [
          "/"
        ]
      },
      "configurations": {
        "prod": {}
      }
    }
Run Code Online (Sandbox Code Playgroud)

server-side-rendering angular-universal angular

7
推荐指数
1
解决办法
610
查看次数

错误:路线未在 Next.js 上完成加载

我正在尝试为我的个人博客构建一个简单的路线,但是当我从索引页面Error: Route did not complete loading: /contact单击我的路线时,chrome 开发人员工具会引发错误。/contact当我点击博客上的另一条路线时也会发生这种情况,反之亦然。在开发模式下,这有点烦人,每次我更改代码并导航到我的路线时,我的 Chrome 开发人员工具总是会引发此错误。我非常确定我的代码遵循 next.js 官方文档上的所有说明。这是我的代码,我使用 styled-components 来设置我的组件的样式。

const Navbar = () => {
    const router = useRouter();
    return (
        <NavbarItems>
            <div className="container">
                <span className="nav-logo">
                    <Link href="/">
                        <a>MKL.</a>
                    </Link>
                </span>
                <ul className="link-container">
                    <li className="nav-link">
                        <Link href="/">
                            <a className={router.pathname === '/' ? 'active' : ''}>Home</a>
                        </Link>
                    </li>
                    <li className="nav-link">
                        <Link href="/about">
                            <a className={router.pathname === '/about' ? 'active' : ''}>
                                About
                            </a>
                        </Link>
                    </li>
                    <li className="nav-link">
                        <Link href="/contact">
                            <a className={router.pathname === '/contact' …
Run Code Online (Sandbox Code Playgroud)

javascript typescript reactjs server-side-rendering next.js

7
推荐指数
0
解决办法
2648
查看次数

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

在 AWS Amplify 上将 Next.js 与 SSR 结合使用,环境变量不会传递到自动创建的 Lambda

我有一个带有 SSR 的 Next.js 应用程序,它依赖于环境变量。当我将应用程序部署到 AWS Amplify 时,会创建 2 个 Lambda 函数。

我在 Amplify 中设置了环境变量,但是,这些变量未在构建期间创建的 Lambda 函数中设置。如果我在函数上手动设置环境变量,它们将在下一次构建期间被删除。

关于这应该如何运作有什么想法吗?

aws-lambda server-side-rendering next.js aws-amplify

7
推荐指数
1
解决办法
4102
查看次数

Angular 通用与 GRPC

我在 Angular 通用应用程序中设置 GRPC 时遇到问题。

基本上,它会抛出一个错误:

ERROR Error: This environment's XHR implementation cannot support binary transfer.
Run Code Online (Sandbox Code Playgroud)

这个错误正在破坏生产中的应用程序(将其托管在 ubuntu 和 nginx 上),但是在本地环境中它可以工作。

如果我将 Angular 切换为不使用 SSR,那么它就可以正常工作。

我的假设是在 Node Express 服务器中我需要添加对 GRPC 的支持,但我不确定如何实现这一点。

有人遇到同样的问题吗?

谢谢!

node.js grpc server-side-rendering angular grpc-web

7
推荐指数
1
解决办法
328
查看次数

即使禁用 SSR,评估 SSR 模块也会出错 - svelte-kit

我希望我的应用程序中的路线之一不要在服务器端渲染。执行此操作的方法将export const ssr = false在模块脚本中执行或ssr: false按照svelte 文档svelte.config.js中提到的设置进行设置

但即使以两种方式禁用 ssr 后,我仍然在终端中收到错误,例如localStorage is not defined禁用 ssr 时不应出现的错误。

虽然应用程序仍然可以找到。但是每当我在浏览器中重新加载页面时,终端上就会出现此错误

[vite] Error when evaluating SSR module /src/routes/index.svelte:
ReferenceError: localStorage is not defined
Run Code Online (Sandbox Code Playgroud)

svelte.config.js

import preprocess from 'svelte-preprocess';
import adapter from '@sveltejs/adapter-static';

/** @type {import('@sveltejs/kit').Config} */
const config = {
    // Consult https://github.com/sveltejs/svelte-preprocess
    // for more information about preprocessors
    preprocess: preprocess(),
    kit: {
        ssr: false,
        adapter: adapter({
            fallback: '200.html'
        }),
        prerender: {
            enabled: false
        },
    } …
Run Code Online (Sandbox Code Playgroud)

javascript server-side-rendering svelte sveltekit

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

Prisma Postres 错误准备语句“s0”已存在

我有一个 Next.js 项目,我使用 Prisma 从 Postgresql 读取数据。

我有这样的代码:

const rows = await prisma.receipts.findMany({
      where: {
        action_receipts: {
          // https://www.prisma.io/docs/concepts/components/prisma-client/filtering-and-sorting#filter-on-relations
          signer_account_id: {
            equals: accountName,
          },
        },
      },
      orderBy: {
        included_in_block_timestamp: 'desc',
      },
      take: 2, 
    });
Run Code Online (Sandbox Code Playgroud)

我经常收到如下错误:

 error: PrismaClientUnknownRequestError: 
  Invalid `prisma.receipts.findMany()` invocation:
  
  
    Error occurred during query execution:
  ConnectorError(ConnectorError { user_facing_error: None, kind: QueryError(Error { kind: Db, cause: Some(DbError { severity: "ERROR", parsed_severity: Some(Error), code: SqlState("42P05"), message: "prepared statement \"s0\" already exists", detail: None, hint: None, position: None, where_: None, schema: None, table: …
Run Code Online (Sandbox Code Playgroud)

postgresql orm server-side-rendering next.js prisma

7
推荐指数
1
解决办法
5892
查看次数