我正在尝试将create-react-app部署到具有自定义域的GitHub页面上的相对路径。例如www.example.com/myproject
我使用react-router-dom,react-router-redux并react-router-bootstrap
我已经将主页设置为http://www.example.com/myprojectin packages.json(也尝试homepage = "."过),并且还为我的历史记录配置了基本名称:
...
export const history = createHistory({ basename: '/myproject' });
const middleware = [thunk, routerMiddleware(history)];
...
const composedEnhancers = compose(applyMiddleware(...middleware), ...enhancers);
const store = createStore(rootReducer, initialState, composedEnhancers);
Run Code Online (Sandbox Code Playgroud)
部署的应用程序可以正常运行www.mydomain.com/myproject,我可以通过应用程序链接进行导航。
但是当我尝试直接输入路径(例如www.example.com/myproject/account)或在子页面上刷新浏览器时,我得到了404 。
长期目标是按照此答案中的描述为开发环境和产品环境配置不同的相对路径,但首先我只需要使其在部署中工作即可。
使用parcel 设置的普通香草打字稿开发环境。
我在浏览器(Edge/Chrome)中没有 SourceMap:
DevTools failed to load SourceMap: Could not parse content for http://localhost:1234/index.7cacc1f4.js.map: Unexpected token < in JSON at position 0
Run Code Online (Sandbox Code Playgroud)
页面加载后的包裹服务日志:
$ parcel serve ./src/index.html --log-level verbose
?? Server running at http://localhost:1234
? Built in 3.15s
@parcel/reporter-dev-server: Request: localhost:1234/
@parcel/reporter-dev-server: Request: localhost:1234/index.7cacc1f4.js
@parcel/reporter-dev-server: Request: localhost:1234/index.7cacc1f4.js.map
@parcel/reporter-dev-server: Request: localhost:1234/favicon-32x32.232ca4f5.png
Run Code Online (Sandbox Code Playgroud)
SourceMap 文件在 dist 中:
$ ls dist
__ favicon-32x32.232ca4f5.png index.453c97a0.js.map
apple-touch-icon.8e36bc09.png favicon-32x32.a91f4dac.png index.7cacc1f4.js
apple-touch-icon.e80caf23.png index.031565ba.js index.7cacc1f4.js.map
favicon-16x16.bc10cd1f.png index.031565ba.js.map index.html
favicon-16x16.d41cdce3.png index.453c97a0.js
Run Code Online (Sandbox Code Playgroud)
它似乎parcel serve正在返回索引页而不是 SourceMaps:
$ curl -v …Run Code Online (Sandbox Code Playgroud)