首页 > 解决方案 > 如果我将 getRequestHandler 与 Express Js 应用程序一起使用,Next.Js app.render() 不起作用

问题描述

我是 NextJs 的新手,我遇到了很多麻烦。我正在为 Shopify 应用程序制作基于 NextJs 和 Express Js 的应用程序。我的要求是当有人像这样点击路线/iframe时,我想显示 NextJs 页面兑换

app.get('/iframe', (req, res) => {
    // res.send('Hello World!');
    const actualPage = '/redeem'
    const queryParams = { id: req.params.id } 
    nextapp.render(req, res, actualPage, queryParams)
  });

这工作得很好。页面呈现,但问题是 CSS 没有加载。我使用了@zeit/next-CSS 包,但仍然遇到很多错误。有些是关于 Mime 类型的。我检查了解决方案,他们说我必须使用它

app.get('*', (req, res, next) => {
    return handle(req, res)
  })

但是,如果我使用它,那么当我点击路线/iframe时,我将无法呈现兑换页面

任何人都可以帮助我吗?似乎我必须同时使用两者,但两者都不能相互使用。

我想要的只是在点击任何快速路线时使用 CSS 呈现 NextJs 页面。

标签: reactjsexpressnext.js

解决方案


app.get('*', (req, res, next) => {
    return handle(req, res)
  })

app.get('/iframe', (req, res) => {
    // res.send('Hello World!');
    const actualPage = '/redeem'
    const queryParams = { id: req.params.id } 
    nextapp.render(req, res, actualPage, queryParams)
  });

像这样

app.get('/iframe', (req, res) => {
    // res.send('Hello World!');
    const actualPage = '/redeem'
    const queryParams = { id: req.params.id } 
    nextapp.render(req, res, actualPage, queryParams)
  });
/*
Some code here....................
*/
app.get('*', (req, res, next) => {
    return handle(req, res)
  })

推荐阅读