以下是我为解决上述问题所做的尝试:
1.使用Redux和Typescript为现有React应用程序创建了使用“npm run build”命令的React构建
1.生成构建后,我尝试访问HTML页面上脚本标记中的“../build/static/js/main.f8fbcfa1.js”文件。请在下面找到用于执行此操作的代码快照:
<div id="root"></div>
<script defer="defer" src="../../../../build/static/js/main.f8fbcfa1.js">
</script>
1.当我尝试在浏览器中访问页面时,React应用程序不会在ID为root的div中呈现。
1.显示空白页
注意-正常的React应用程序在上面的场景中工作,但带有typescript的React应用程序会导致问题
请让我知道解决这个问题的任何指针。
1条答案
按热度按时间ars1skjm1#
运行npm run build会生成静态站点,用于从web或app服务器提供服务,从本地打开这些页面可能会以白色页面结束,因为html中的引用需要服务器。这就是为什么在用户运行npx react-app my-app --template typescript后,输出建议运行npm start,这将在端口3000上启动开发服务器,用户可以在浏览器上看到他们正在开发的任何内容。
因此,当用户运行npm build时,它会生成此索引html
如果用户在浏览器中打开索引html并检查开发者控制台,他们将看到加载失败,源代码为“file:///static/js/main.96e15f3a.js”。如果用户将这些文件放入/var/www或inetpub根文件夹,则可以按预期访问页面。
否则,用户可以编辑索引html并将该行更改为
可能会给页面x1c 0d1x带来一些意义,但徽标仍然不起作用。
总之,长话短说,如果用户创建了一个react项目,他们需要把它放到一个真实的web服务器上,否则在本地坚持使用npm start。
对于asp.net应用程序,用户需要使用npm提供的索引html更改默认aspx。对于apache(我假设是基于php的应用程序),将index.php更改为索引。