reactjs - 是否可以在不弹出的情况下配置 create-react-app express.static 选项?
问题描述
默认情况下,当存在空文件夹时,express.static会触发301
添加正斜杠的重定向。
这就是我为自定义Express服务器禁用此重定向的方式。
server.use(
express.static(path.join(__dirname, "build"), {
redirect: false,
})
)
在开发模式下redirect: false
使用create-react-app时是否可以配置( npm start
?
看看下面的标题,我猜 Express 是create-react-app
用来在开发模式下为SPA服务的。
加载http://localhost:3001/privacy-guides时的请求标头
HTTP/1.1 301 Moved Permanently
X-Powered-By: Express
Content-Type: text/html; charset=UTF-8
Content-Length: 195
Content-Security-Policy: default-src 'none'
X-Content-Type-Options: nosniff
Location: /privacy-guides/
Vary: Accept-Encoding
解决方案
简短的回答,不。
正如@goto1 指出的那样,以下不是好的做法,但帮助我了解了 CRA 的幕后工作原理。
当使用 以开发模式运行 CRA 时npm start
,webpack-dev-server用于为应用程序提供服务。Webpack DevServer 使用 Express 来提供文件,这解释了为什么浏览到文件夹会触发301
重定向(参见express.static options.redirect
,默认为true
)。
当路径名是目录时,重定向到结尾的“/”。
我确认添加以下内容以node_modules/react-scripts/config/webpackDevServer.config.js
禁用重定向。
staticOptions: {
redirect: false
}
手动编辑此文件有点麻烦,但可以。不幸的是,我能找到的唯一合法配置方法staticOptions
需要弹出.
推荐阅读
- python - 组织名称(在互联网上找到)以将它们用作请求中的输入
- node.js - Nodemon 不断因“已在使用错误”而崩溃
- git - 如何显示“git add”的进度?
- qt - 从源代码构建 VLC-Qt 库
- ios - 发出 AppAuth iOS“invalid_grant:错误请求”
- android - 从应用程序内的 Google Book API 下载电子书
- java - 尽管 qr 是可扫描的,但 MultiFormatReader 无法读取 qr
- java - 如何在 HttpServletRequest 中获取 URI 参数?
- javascript - Material UI Popover - keydown 事件模拟问题
- react-native - 状态数据变大怎么办?