刚遇到了这个problem(简而言之:将新生成的dotnet核心anuglar应用程序部署到IIS实例后,对于所有.css和.js文件,它的代码都是404),发现第一个答案对我有用。使用--base-href <basedir>
选项404s编译应用后,该应用消失了。
我当前要存档的是dotnet publish
会根据每个发布配置文件自动对我执行此操作(因此,这里无法将base-href硬编码为.csproj)。我认为可以完成这项工作的方法是,我已经在 profile.pubxml.user 文件中添加了一个新属性:
<PropertyGroup>
...
<additionalBuildParams>--base-href /myapp/</additionalBuildParams>
...
</PropertyGroup>
并修改了.csproj文件,例如:
<Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish">
...
<Exec WorkingDirectory="$(SpaRoot)" Command="npm run build $(additionalBuildParams) --prod" />
...
</Target>
但执行dotnet publish -c Debug /p:PublishProfile=profile.pubxml
之后
输出看起来像这样:
λ dotnet publish -c Debug /p:PublishProfile=profile.pubxml
Microsoft (R) Build Engine version 15.9.20+g88f5fadfbe for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
...
> MyApp@0.0.0 build C:\Projects\MyApp
> ng build --extract-css "/myapp/"
显然,所需的输出将是:
> ng build --extract-css --base-href /myapp/