将 reactjs 和 .net 4.8 后端部署到 iis 时遇到问题

Posted

技术标签:

【中文标题】将 reactjs 和 .net 4.8 后端部署到 iis 时遇到问题【英文标题】:Having trouble deploying reactjs and .net 4.8 backend to iis 【发布时间】:2020-01-07 14:37:26 【问题描述】:

所以我尝试使用 .net 4.8 后端和 reactjs 作为前端来部署应用程序。我关注了这个guide。

我构建了两个代理步骤,两个工件都在发布中,但是当它部署时,“dist”工件的内容没有进入“/ClientApp/dist”,它只是转储到了根文件夹中。此外,repo 中没有“dist”文件夹,我希望创建它,这也应该根据本教程发生。我运行 webpack,输出是 './ClientApp/dist/'。

我尝试将前端构建步骤目标文件夹放入:buildvariables + /(projectname)/ClientApp/dist',只是 '/ClientApp/dist',只是 '/ClientApp/',但它要么将其转储到根目录文件夹,否则我会收到这样的构建错误:

发布构建工件失败并出现错误:未找到 PathtoPublish: d:\a\1\a\ClientApp\dist\

以下是一些步骤的图片:

构建:

发布:

如何构建并部署它,以便“dist”工件最终位于“/ClientApp/dist”中并为其创建文件夹“dist”?

【问题讨论】:

正常情况下,npm run build react app 默认生成build文件夹。如何将webpackreact app 结合起来,定义输出路径为./ClientApp/dist/ @HughLin-MSFT 因此,“npm run build”步骤具有在 package.json 中指定并引用 webpack 的命令“run build”。像这样:“prod”:“set NODE_ENV=production&& webpack --mode=production”,并且在 webpack 中输出是这样指定的: path:“path.resolve(__dirname, “./ClientApp/dist/”), " @HughLin-MSFT 所有这些在本地都可以正常工作。 dist 文件夹已创建并包含所有捆绑的脚本等等。如果我指定目标文件夹:“(项目名称)/ClientApp/”,这也可以工作。然后在服务器上创建 dist 文件夹,但它是在 (Projectname) 根目录下创建的。如果我指定目标文件夹:“(项目名称)/ClientApp/dist”,则 dist 文件夹中的所有内容都会转储到(项目名称)根目录中。很奇怪。 【参考方案1】:

我用一个简单的示例进行了测试,将 webpack.config.js 中的输出指定为./ClientApp/dist/

在本地visual studio运行npm run buildclientApp / dist文件夹会自动在根目录下创建。但是如果你使用托管代理在azure devops中运行,创建的文件夹将不会显示在repo中,因为项目已经签出到代理,这是正常的。

发布构建工件失败并出现错误:未找到 发布路径:d:\a\1\a\ClientApp\dist\

此错误是由于您的发布路径指定不正确,您需要指定正确的发布路径。就我而言,它运作良好:

【讨论】:

以上是关于将 reactjs 和 .net 4.8 后端部署到 iis 时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

如何将图像从前端(reactjs)传递到后端(nodejs)并将其上传到firebase存储?

将 ReactJS 和 ExpressJS 部署到 Nginx

将.net framework 4 部署在docker中的全过程(支持4.0 到 4.8,3.5应该也可以)

ReactJS 和 .NET Core API 中的 windows 授权

CORS 问题 - 使用 Keycloak 保护 ReactJS 前端和 JAX-RS 后端

使用 Django、webpack、reactjs、react-router 解耦前端和后端