首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >静态服务器的React build出现404错误

静态服务器的React build出现404错误
EN

Stack Overflow用户
提问于 2020-05-23 06:08:25
回答 1查看 1.4K关注 0票数 2

我有一个React应用程序,它在本地运行得很好,但是当我尝试在静态Node服务器serve (npm serve)上使用

代码语言:javascript
复制
serve -s build

服务器返回一个404 The requested path could not be found页面。我的理解是,这个问题与我在应用程序中使用BrowserRouter的事实有关。我使用以下代码在根目录中放置了一个.htaccess文件,但它没有解决问题。

代码语言:javascript
复制
<IfModule mod_rewrite.c>

  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-l
  RewriteRule . /index.html [L]

</IfModule>

下面是我在Node环境中看到的一个建议,但我不知道将代码放在哪里。

代码语言:javascript
复制
app.get('*', function (req, res) {
  res.send('index_path')
})

我的index.js文件如下。

代码语言:javascript
复制
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import { Route, Switch, BrowserRouter as Router } from 'react-router-dom';
import App from './App';
import Service from './javascript/Service';
import { PageNotFound } from './PageNotFound';
import * as serviceWorker from './serviceWorker';

const routing = (
    <Router>
        <Switch>
            <Route exact path="/" component={App} />
            <Route path="/Service/:serviceName" component={Service} />
            <Route component={PageNotFound} />
        </Switch>
    </Router>    
);

ReactDOM.render(routing, document.getElementById('root'));

serviceWorker.unregister();
EN

回答 1

Stack Overflow用户

发布于 2021-01-17 19:43:58

首先,您应该使用

代码语言:javascript
复制
npm run build (or yarn)

下一步安装serve

代码语言:javascript
复制
npm install -g serve

然后运行这段代码

代码语言:javascript
复制
serve -s build
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61964608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档