gpt4 book ai didi

angular - asp.net 核心 web 应用程序发布命令没有正确部署 Angular 客户端应用程序

转载 作者:行者123 更新时间:2023-12-05 06:30:58 26 4
gpt4 key购买 nike

两个不同的网络应用程序。两者都从带有 Angular 模板的 asp.net 核心开始。在第二种情况下,我生成了一个 angular6 应用程序。 angular6 应用程序在本地运行良好。它是 visual studio 的发布步骤,在第二种情况下事情发生了变化。


(1) 使用 asp.net core w/angular 5 模板的测试用例。工作正常,发布到本地 IIS 网站并且在那里也工作正常。发布到 IIS 时,我得到“ClientApp”文件夹

package.json 脚本部分

"name": "aspnetcore_dummy1",
"version": "0.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve --extract-css",
"build": "ng build --extract-css",
"build:ssr": "npm run build -- --app=ssr --output-hashing=media",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},

来自 tsconfig.json

"compilerOptions": {
"outDir": "./dist/out-tsc",

(2)
asp.net 核心应用程序 w/angular 6project.json 脚本部分

  "name": "client-app",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},

来自 tsconfig.json

  "compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",

在这两种情况下,这就是 Startup.cs 对于 ConfigureServices 的样子

public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

services.AddSpaStaticFiles(configuration =>
{
configuration.RootPath = "ClientApp/dist";
});



}

但是,当发布到 IIS 时,情况 (1) 对于 ClientApp/dist 文件夹是正确的,但是 (2) 我没有得到 ClientApp 下的“dist”文件夹,而是“e2e”、“src”文件夹和一些的设置文件。看图

enter image description here

[更新] - csproj 文件中有效但不在其他 csproj 文件中的内容

 <Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish">
<!-- As part of publishing, ensure the JS resources are freshly built in production mode -->
<Exec WorkingDirectory="$(SpaRoot)" Command="npm install" />
<Exec WorkingDirectory="$(SpaRoot)" Command="npm run build -- --prod" />
<Exec WorkingDirectory="$(SpaRoot)" Command="npm run build:ssr -- --prod" Condition=" '$(BuildServerSideRenderer)' == 'true' " />

<!-- Include the newly-built files in the publish output -->
<ItemGroup>
<DistFiles Include="$(SpaRoot)dist\**; $(SpaRoot)dist-server\**" />
<DistFiles Include="$(SpaRoot)node_modules\**" Condition="'$(BuildServerSideRenderer)' == 'true'" />
<ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
<RelativePath>%(DistFiles.Identity)</RelativePath>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</ResolvedFileToPublish>
</ItemGroup>
</Target>

最佳答案

根据 itmius 上面的建议评论,我查看了项目文件的详细信息。这确实是发布期间大部分操作发生的地方。我没有试图追踪这个和/或任何其他“遗留”配置部分,而是从一张白纸开始——一个新的 asp.net core w/angular 项目模板,然后复制到我现有的 clientapp 文件夹,然后我又回来了在业务中。

关于angular - asp.net 核心 web 应用程序发布命令没有正确部署 Angular 客户端应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51956615/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com