标签: server-side-rendering

在React服务器端组件中设置<script>的内容

我有这个组件:

export class Demo extends React.Component<DemoProps, any> {
    private foo: number;

    constructor(props: DemoProps) {
        super(props);
    }

    render() {
        return (
            <html>
            <head>

                <script>
                   // I would like to add an inline script here
                </script>

            </head>
            <body>
            <div id="root">
                (hello world)
            </div>
            <div>
                <progress id="hot-reload-progress-bar" value="100" max="100"></progress>
            </div>
            </body>
            </html>
        )
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在<script></script>标签内添加内联脚本?

如果尝试这个:

     getScript() {

        const config = JSON.stringify({
            env: process.env.NODE_ENV
        });

        return 'define(\"@config\", [], function () {' +
            ' return ' + config +';' +
            '});' …
Run Code Online (Sandbox Code Playgroud)

node.js reactjs server-side-rendering

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

Angular 4 与 Universal + ng2-translate

我目前正在我的应用程序中实现 Angular Universal。我已经有一堆错误需要解决,但我坚持这个错误。我可以构建我的应用程序,aot 编译工作正常,但是当我运行应该引导我的应用程序的服务器时,我可以看到该错误:

我的 \node_modules\ng2-translate\src\translate.pipe.js:1 中出现意外的令牌导入

我已经看到服务器版本有一个特殊的加载器使用 fs 而不是 http 来查找与语言对应的 json 文件。

所以这是我的代码:

应用程序.浏览器.模块.ts

`import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { TranslateModule, TranslateStaticLoader, TranslateLoader } from 'ng2-translate';
import { Http } from '@angular/http';
import { BrowserStateTransferModule } from '@ngx-universal/state-transfer';

import { AppModule } from './app.module';
import { AppComponent } from './app.component';
import { HttpTranslate } from './translate.config';

@NgModule({
  imports: [
    BrowserModule.withServerTransition({
      appId: 'aml-website'
    }),
    BrowserStateTransferModule.forRoot(),
    TranslateModule.forRoot({
      provide: TranslateLoader,
      useFactory: HttpTranslate,
      deps: …
Run Code Online (Sandbox Code Playgroud)

server-side-rendering ng2-translate angular-universal angular

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

Angular 4 - 通用隐藏HTTP请求

是否可以使用 Angular 进行服务器端渲染并隐藏用户的 HTTP 请求,即在服务器端执行 http 请求?

我创建了一个 api,但我不想将其暴露给外界,我不希望您可以在网络选项卡中看到响应数据。

那么 Angular 是否可以做到这一点,或者我是否需要使用不同的框架来实现这一点?

server-side node.js universal server-side-rendering angular

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

如何在 nuxt.js (vue.js) 中配置动态 og 标签?

我使用 vue init nuxt /express myprojectstart 启动了 nuxt 应用程序。

这是我的目录。

page
|- _project.vue
|- project
  | - index.vue
Run Code Online (Sandbox Code Playgroud)

_project.vue的配置

export default {
  head () {
    return {
      title: this.project.title,
      meta: [
        {property: 'fb:app_id', content: '12873892173892'},
        {property: 'og:title', content: this.project.title},
        {property: 'og:image', content: this.project.image},
      ],
    }
  }
},
async asyncData ({app, params, error}) {
  const project = await app. $ axios. $ get (`/ project`)
    return {
      project: project.project,
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您按 Facebook 共享按钮,则不会出现所需的标题和图像。

我认为这是服务器端渲染问题。但我无法解决这个问题。

我将不胜感激你的帮助。

facebook facebook-opengraph vue.js server-side-rendering nuxt.js

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

在构建时临时禁用 Next.js 页面

Next.js项目中有几个页面存在SSR相关的问题,导致报错npm run build,导致项目无法构建:

pages/
  foo/
    bar/
      [id].jsx
      index.jsx
    index.jsx
  ...
Run Code Online (Sandbox Code Playgroud)

例如bar

export function getStaticProps() {
  return someApiCallThatCurrentlyFails()
  ...
}

export default function Bar() {...}
Run Code Online (Sandbox Code Playgroud)

作为快速修复,不构建bar/*.*页面并使路由不可用可能会很方便。

可以在 Next.js 构建中忽略页面而不实际更改或删除项目中的页面组件文件吗?

javascript reactjs server-side-rendering next.js

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

如何修复:错误:同步和异步加载 Angular 结构

我刚刚将我的 Angular 6 项目升级到了 Angular 11。这个项目已经实现了 SSR,这是问题所在。

当我运行时,ng run myapp:server我收到此错误:

? Server application bundle generation complete.

Initial Chunk Files | Names         |    Size
main.js             | main          | 4.06 kB

                    | Initial Total | 4.06 kB

Build at: 2021-04-22T14:02:16.388Z - Hash: 2a6aaefe9d15b8a7dedc - Time: 4907ms

Error: Angular structure loaded both synchronously and asynchronously
Run Code Online (Sandbox Code Playgroud)

在我的angular.json我有这个代码:

? Server application bundle generation complete.

Initial Chunk Files | Names         |    Size
main.js             | main          | 4.06 kB

                    | Initial Total | …
Run Code Online (Sandbox Code Playgroud)

server-side-rendering angular

5
推荐指数
3
解决办法
4383
查看次数

React Router v5 伴随代码拆分和使用服务器端渲染的数据预取

我有一个项目,仅出于一个原因使用react-router v3。原因是需要使用数据预取的服务器端渲染,最方便的方法是将集中式路由配置保持在objector 中array并循环匹配元素以从服务器端的 API 获取数据。稍后的数据将与响应 HTML 一起传递给客户端,并存储在 JSON 格式字符串的变量中。

应用程序也使用代码拆分,但是通过babel-plugin-transform-ensure-ignore在服务器端使用,我可以直接获取组件而不是延迟加载,并且本机import方法将仅在客户端使用。

尽管如此,上述结构不适用于react-router v5,因为它有点困难,因为我不能使用@loadable/components,正如react-router官方文档所建议的那样。根据我的观察,@loadable/components只是在服务器端生成 HTML,而不是给我实现fetch负责服务器端逻辑的方法的组件。

所以想请教一下webpack + react-router v5 + ssr + data prefetch + redux + code splitting的好结构

我看到它非常复杂并且没有通用的解决方案,但是我可能是错的。

任何方向或建议表示赞赏。

javascript lazy-loading reactjs webpack server-side-rendering

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

为什么在nextjs中刷新后所有样式的materialui都会消失?

我从 materialui ( https://material-ui.com/guides/server-rendering/ )的文档中找到了解决方案,但我仍然不知道原因。

  1. 为什么样式在第一次渲染时有效,但在第二次渲染时消失?我知道 SSR 会在每个请求中为客户端生成带有 css 的 html 模板,因此样式应该仍然有效,因为它被注入到 html 模板中。

  2. 在文档中,它提到“在客户端,将在删除服务器端注入的 CSS 之前第二次注入 CSS”。但是,我不知道为什么需要删除它。CSS 被注入到每个请求的 html 模板中,所以它不会导致我的想法出现任何崩溃,以及为什么删除注入的 css 后样式不会消失。

css material-ui server-side-rendering next.js

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

带数据获取的 SSR,没有状态管理库

我正在尝试制作一个 SSR 反应应用程序,但无法将道具从 express 传递到组件。我在做什么错误?

服务器.js

import AppPage2 from './src/project02/LandingPage';
......
......
server.get('/project2',async (req,res)=>{
    const context = {data:'test'}
    const sheet = new ServerStyleSheet();
    const content = ReactDOMServer.renderToString(sheet.collectStyles(
        <StaticRouter location={req.url} context={context}>
            <AppPage2 state={{"foo":"baar"}}/>
        </StaticRouter>)
    );
    const styles = sheet.getStyleTags();
    let html = appShell( 'Project 2', content,' project2.bundle.js',styles)
    res.status(200).send(html);
    res.end()
})
Run Code Online (Sandbox Code Playgroud)

AppPage2(./src/project02/LandingPage)

import React from 'react';
import {Wrapper,Title}  from './styleComponent/testStylePage'
.......
.......
class AppPage extends React.Component {

    componentDidMount() {
       console.log("{{API}}",this,this.props, this.props.staticContext)
    }

    render(){
        return(
            <Wrapper>
                <Title>This is project 01 </Title>
            </Wrapper>
        ) …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-router isomorphic-javascript server-side-rendering

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

如何关闭 Next.js 中的 CSS 模块功能?

Next.js 只允许在 _App.js 中导入全局 CSS。但是我们不能在每个组件中导入全局 CSS,因为我们必须按照 Next.js 的限制使用 CSS 模块。

现在我正在将一个大型项目迁移到 Next.js,并且将每个模块的 css 转换为 CSS 模块非常困难。有什么办法可以解除这个限制吗?

限制文档链接: https : //nextjs.org/docs/messages/css-global

javascript css reactjs server-side-rendering next.js

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