默认情况下,当存在空文件夹时,express.static会触发301重定向,添加一个正斜杠。
我就是这样为自定义快递服务器禁用此重定向的。
server.use(
express.static(path.join(__dirname, "build"), {
redirect: false,
})
)在开发模式( redirect: false )中使用创建反应-应用程序时是否可以配置npm start?
通过查看下面的标题,我猜create-react-app在开发模式中使用了Express来服务温泉。
加载 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发布于 2020-02-16 12:27:38
简短的回答,不。
正如@goto1 1所指出的,下面的内容并不是一个很好的实践,但它帮助我理解了CRA中事物是如何在引擎盖下工作的。
在使用npm start在开发模式下运行CRA时,使用webpack开发服务器为应用程序服务。Webpack DevServer使用Express提供文件,这解释了为什么浏览文件夹会触发301重定向(参见express.static options.redirect,默认值为true)。
当路径名是目录时,重定向到尾部“/”。
我确认在node_modules/react-scripts/config/webpackDevServer.config.js中添加以下内容将禁用重定向。
staticOptions: {
redirect: false
}手工编辑这个文件有点麻烦,但很有效。不幸的是,我找到配置staticOptions的唯一合法方法需要弹射。
发布于 2020-02-15 19:05:23
create-react-app是一种构建工具,而不是服务器。它的输出是一组静态html/js/css文件,您可以随意以任何方式提供这些文件。(npm run build)
create-react-app所提供的唯一服务是开发服务器,它只用于开发人员机器,而不是在生产中使用。(npm start)
如果您仍然需要重写create-react-app配置,那么请查看一些专门的工具,如:
https://stackoverflow.com/questions/60241958
复制相似问题