Next.JS在新标签页中打开的JS动态路由静态导出项目或重新加载页面导致404

时间:2020-02-14 12:13:46

标签: reactjs apache next.js

我有一个使用Apache + Cpanel的VPS。 我无法在其上配置Nginx,据我所知,唯一的方法是先“静态导出”,然后再部署它。 原来,我无法通过直接粘贴在网址栏上的链接来访问产品页面(而不是单击链接文本)。 链接如下所示:www.example.com/products/4www.example.com/products/213 我的第一个建议是因为我“静态导出”了项目。

我在<Link />下使用下一路线

我的代码

import React, { Component } from 'react';
import { withRouter } from 'next/router';
import { connect } from 'react-redux';
import fetch from 'isomorphic-fetch';
import Navbar from '../components/Navbar';
import Footer from '../components/Footer';
import CheckoutBody from '../components/CheckoutBody';

class Product extends Component {
    static async getInitialProps({ query }) {
        let { id } = { ...query };
        if (id === undefined) id = 14;
        const res = await fetch(`http://www.example.com/api/product?id=${id}`);
        const data = await res.json();
        return { campaignDetail: data };
    }

    render() {
        let { lang } = this.props;

        return (
            <React.Fragment>
                <Navbar />
                <CheckoutBody
                    key={this.props.productDetail.id}
                    productDetail={this.props.productDetail}
                    lang={lang}
                />
                <Footer />
            </React.Fragment>
        );
    }
}

export default Product ;

问题相同,但问题不同:https://github.com/zeit/next.js/issues/9893

我已经尝试过对.htaccess进行此操作。它不起作用。我是regex和htaccess的新手。

RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]
  1. 我该怎么办?
  2. 这就是所谓的动态路线吗?

0 个答案:

没有答案