create-react-app CSS和JS路径

时间:2016-07-25 10:38:40

标签: reactjs

运行Create React Appnpm run build后,创建的index.html如下所示:

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>React App</title><link rel="shortcut icon" href="/favicon.ico"><link href="/main.e606e04b6e0092a87205a9dc4662479c.css" rel="stylesheet"></head><body><div id="root"></div><script type="text/javascript" src="/main.35180d284d8a2058f717.js"></script></body></html>

scriptlink src / href - 属性都指向了错误的方向。应删除前导/,因为所有生成的文件都在同一目录中。这是一个错误还是我能以某种方式配置这些路径?

2 个答案:

答案 0 :(得分:23)

生成的文件应该从Web服务器提供。运行npm run build时,您应该看到有关在该目录中启动简单本地Web服务器的说明。如果您将此目录部署到真实Web服务器并从根目录提供index.html,它也可以正常工作。

如果生成的文件引用了没有/的脚本,则只要添加客户端路由,您的站点就会中断。例如,如果某个应用位于mysite.com,但也会处理mysite.com/about之类的网址,则相对路径会导致从mysite.com/about/*.js加载脚本,这将是404错误。这就是默认情况下所有路径都从root开始的原因。

如果您想从子目录(例如myuser.github.io/myproject)提供应用,则需要在"homepage"中添加package.json字段,例如:

  "homepage": "http://myuser.github.io/myproject"

创建React App将根据homepage设置推断出正确的根路径。此功能自react-scripts@0.2.0

起可用

请阅读deployment instructions了解详情。

答案 1 :(得分:0)

我知道这很旧,但是我遇到了同样的问题。在我拥有{"homepage": "./"}并将其更改为{"homepage": "/"}的{​​{1}}之前,似乎可以解决我的问题。