为什么运行index.html不能用于`create-react-app`构建?

时间:2017-09-28 00:12:39

标签: reactjs create-react-app

我是create-react-app的新手。 我想知道为什么打开index.html表单构建不起作用? 我知道应该使用构建版本serve -s build,但我想知道为什么没有服务就无法启动构建反应应用程序。

我会进一步解释: 我做的是......

  1. create-react-app helloworld
  2. 进行一些代码更改并验证应用程序是否正常运行。
  3. npm run buildyarn run build ...现在,我将使用./build创建index.html目录。
  4. 现在我只是在浏览器中打开index.html,它将无效。
  5. 我想了解为什么这不起作用? 为什么我必须为构建服务才能使其工作?

3 个答案:

答案 0 :(得分:1)

reddit上的某个人针对类似的话题给出了以下答案

  

该项目是在假定它托管在服务器根目录下构建的。

     

要覆盖此内容,请在package.json中指定主页。

     

我不推荐这样做,但是您可以将以下内容添加到   package.json,可直接从文件服务器运行它-

     

“主页”:”。/”

https://www.reddit.com/r/reactjs/comments/5iya27/why_open_up_indexhtml_wont_workcreatereactapp/

答案 1 :(得分:0)

对于react-router应用程序,有一个hack。只需使用路径“ /index.html”创建一个<Route/>到合适的组件即可。

<Route exact path="/" component={Home} /> <Route path="/index.html" component={Home} />

答案 2 :(得分:0)

对于使用 react-router-dom 的用户,您可以使用 <HashRouter> 代替 <BrowserRouter>。它应该是这样的:

<HashRouter>
  <Switch>
    <Route path="/" exact component={ Main } />
  </Switch>
</HashRouter>