当我们重新加载/刷新

时间:2017-04-19 10:06:42

标签: wordpress reactjs routes apache2

我使用react js创建了一个站点。它使用browserHistory在我的本地系统上正常工作但不在我的生产服务器上工作。第一次正确加载。当我刷新页面时,它会给我"找不到页面"错误。

我尝试过使用hashHistory。它解决了我的问题,但我正在寻找更好的解决方案,因为我不想要包含#和随机密钥的复杂网址hashHistory。 (我们希望它封装到类似http://example.com/about而不是http://example.com/#/about?_k=9yfmfq

的内容

我的webpack.config.js代码 -

module.exports = {
  entry: [
    './src/index.js'
  ],
  output: {
    path: __dirname,
    publicPath: '/',
    filename: 'bundle.js'
  },
  module: {
    loaders: [{
      exclude: /node_modules/,
      loader: 'babel'
    }]
  },
  resolve: {
    extensions: ['', '.js', '.jsx']
  },
  devServer: {
    historyApiFallback: true,
    contentBase: './',
    port: 3000
  }
};

在apache2中寻找解决方案。很抱歉问了一个菜鸟问题。

1 个答案:

答案 0 :(得分:2)

问题是当您第一次加载yourdomain.com时,您的服务器默认提供index.html文件。因此,当您尝试yourdomain.com/something时,您的服务器会尝试查找该文件,但由于它不存在,它将发送404.您必须配置服务器以将所有页面请求重定向到index.html文件。

以下是nginx -

的简单single page application配置
location / {
    try_files $uri /index.html;
}

这会将所有网址重定向到index.html,这将加载您的javascript,然后所有路由都将由javascript处理。