create-react-app 在开发过程中为来自React.lazy的块指定主机名

zd287kbt  于 4个月前  发布在  React
关注(0)|答案(1)|浏览(56)

你好,我在使用React.lazy进行代码分割时遇到了一个问题。问题在于,我从与CRA提供的文件不同的localhost加载生成的bundle(localhost:9080 vs localhost:3000)。然而,这些chunks在没有指定主机名的情况下被加载,导致它们从localhost:9080而不是localhost:3000加载。我已经尝试在.env.development中设置HOST、PORT和PUBLIC_URL,但都没有成功。

有没有办法为使用React.lazy生成的fetched chunks指定主机名?非常感谢任何帮助!

vmpqdwk3

vmpqdwk31#

嘿,@danielweil,你可以使用HTML base标签来解决这个问题。这个元素允许你指定文档中所有相对URL的基本URL - https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
根据你的描述,我猜想你有一个类似于下面的实现从localhost:9080提供的HTML文件。只需在你的derided主机旁边添加<base>标签:

<html>
    <head>
        <base href="http://localhost:3000/">
        <script defer src="http://localhost:3000/static/js/bundle.js" crossorigin="anonymous"></script>
    </head>
    <body>
        <div class="root"></div>
    </body>
</html>

上述实现将使用http://localhost:3000/的基本路径懒加载块。
希望这对你有帮助!

相关问题