对于长消息,首先道歉
我正在为.net核心MVC应用程序使用react模板。一切都按预期进行。当前动态环境变量的处理过程是
我们先构建应用程序,然后通过更改 appsettings中的变量,将相同的构建包(不要在每个环境中一次又一次地构建),将其部署到DEV / QA / UAT / STAGING / PROD .net核心的.json 和
对于React应用,我们在公共文件夹中有一个文件,其中维护着一组变量,每个环境都需要更改这些变量,只是将一个简单的对象分配给窗口。___settings 。我们在内部将其分配给应用的设置对象。这也很好用。
问题在这里,当我们构建和发布时,我们使用的是传统的 dotnet publish 命令,它内部调用“ react-scripts build”并吐出捆绑包到dist文件夹,然后将应用程序部署在IIS环境中。当我们尝试访问该站点时,静态文件的位置与构建文件夹无关,而只是相对于网站。索引文件中的所有源路径都指向/main.js,但是此文件位于网站根文件夹下的某个文件夹中。因此我们获得了404状态。
临时/丑陋的解决方案:要解决此问题,我们正在为每个环境(我们不想这样做的)重建应用程序,方法是在package.json文件和这次的react-scripts在内部将主页URL添加到索引文件中的main.js文件中。
我们是否有任何有意义的解决方案,不必为每种环境重建应用程序,而只是继续部署已构建的程序包?
我希望我有道理并清楚地说明了我的问题,在此先感谢您耐心阅读。