将 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
文件夹。如何将webpack
与react
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 build
,clientApp / 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 授权