说在最最前html
此次分享比较啰嗦啦,想说的不少。实际问题的解决是 “2-3.恍然大悟 部分”,能够直接跳过其余多余的絮叨哦~前端
最近入职新公司因为前端主要是react,遂开始去学习了解react,这两天跟着电子书《The Road to learn React》敲了一遍,巩固了js,熟悉了react的基础知识。但在完成最后部署上线是遇到一些小问题,因为搜索无果,便记录于此。react
因为我用的是nginx服务器,因此这里说明一下是基于nginx的配置, 需求不符能够再找找别的啦
推荐想入门react的同窗去看这本书 《The Road to learn React》,我的以为很受用。
首先我此次的项目是用create-react-app这个脚手架搭建的,在package.json
里面就有写好脚本命令,这个工具的readme里面也有介绍到。
当须要把项目打包成生产环境的文件是须要使用的是npm run build
这个命令webpack
npm run build
creates abuild
directory with a production build of your app. Set up your favorite HTTP server so that a visitor to your site is servedindex.html
, and requests to static paths like/static/js/main.<hash>.js
are served with the contents of the/static/js/main.<hash>.js
file.
这里把官方的介绍copy过来凑下字数,顺便本身大概意译一下就是这个命令会把可供生产环境使用的文件打包到bulid
文件夹中,你须要而后访问者打开你的网站时能够访问到你的这个index.html
,而后就是在index.html
里面引用的资源文件的路径也跟资源文件一一对应好了。路径如上所述。nginx
因为是本身的项目,本身的云服务器。没那么多讲究。项目打包好了以后就直接把build文件夹里面的内容丢到服务器上了,也在nginx配置文件中给location配置好了。git
兴高采烈访问地址想看看学习成果,不出意料,炸了。github
我先来看看我作了啥。web
npm run build
其实这里页面访问到了,服务器是指向了个人index.html
文件的,由于没有404错误。
既然服务端没错,那就是前端问题,那么就打开控制台看看,果真报错。npm
控制台报找不到资源文件,仔细一看这里资源文件的路径指的是我服务器的根目录json
看到控制台报错内容瞬间就想明白了,原来这里index.html
的路径默认是指向相对根目录的,那么知道问题就开始解决了。
因为以前部署Vue项目时也碰到过这种相似的问题,当时是经过修改webpack配置解决的。
由于这里是经过create-react-app搭建的项目,因此继续看文档发现
By default, Create React App produces a build assuming your app is hosted at the server root.
To override this, specify the homepage in your package.json, for example:
原来是能够经过往package.json添加homepage项实现相对路径的修改的!
like this:
"homepage": "http://mywebsite.com/relativepath",
不出意外,跟着文档的指示,成功部署到了服务器上,虽然是个很简单的项目。但本身算是第n次初学react了。遂记录一下,之后也有迹可循。
感谢阅读!不足之处,请多指教~