redux 如何在现有的ASP.Net MVC项目中集成现有的React应用程序和typescript?

bzzcjhmw  于 2023-10-19  发布在  .NET
关注(0)|答案(1)|浏览(108)

以下是我为解决上述问题所做的尝试:
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应用程序会导致问题
请让我知道解决这个问题的任何指针。

ars1skjm

ars1skjm1#

运行npm run build会生成静态站点,用于从web或app服务器提供服务,从本地打开这些页面可能会以白色页面结束,因为html中的引用需要服务器。这就是为什么在用户运行npx react-app my-app --template typescript后,输出建议运行npm start,这将在端口3000上启动开发服务器,用户可以在浏览器上看到他们正在开发的任何内容。
因此,当用户运行npm build时,它会生成此索引html

<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="shortcut icon" href="/favicon.ico"><title>React App</title><link href="/static/css/main.40b4a62f.css" rel="stylesheet"></head><body><div id="root"></div><script type="text/javascript" src="/static/js/main.96e15f3a.js"></script></body></html>

如果用户在浏览器中打开索引html并检查开发者控制台,他们将看到加载失败,源代码为“file:///static/js/main.96e15f3a.js”。如果用户将这些文件放入/var/www或inetpub根文件夹,则可以按预期访问页面。
否则,用户可以编辑索引html并将该行更改为

<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="shortcut icon" href="./favicon.ico"><title>React App</title><link href="./static/css/main.40b4a62f.css" rel="stylesheet"></head><body><div id="root"></div><script type="text/javascript" src="./static/js/main.96e15f3a.js"></script></body></html>

可能会给页面x1c 0d1x带来一些意义,但徽标仍然不起作用。
总之,长话短说,如果用户创建了一个react项目,他们需要把它放到一个真实的web服务器上,否则在本地坚持使用npm start
对于asp.net应用程序,用户需要使用npm提供的索引html更改默认aspx。对于apache(我假设是基于php的应用程序),将index.php更改为索引。

相关问题