我使用 docker 容器化我的应用程序,部署后遇到缺少资源的问题 - 没有 css 和 js 文件。
docker 撰写文件:
my-app:
image: my-app-img
container_name: my-app
restart: always
ports:
- "80:80"
docker文件
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build-env
WORKDIR /MyApp
COPY . ./
FROM mcr.microsoft.com/dotnet/aspnet:7.0
WORKDIR /MyApp
COPY --from=build-env /MyApp/out .
ENTRYPOINT ["dotnet", "MyApp.WebUI.dll']
布局中的链接
<script src="~/lib/jquery/dist/jquery-3.2.1.slim.min.js"></script>
<script src="~/lib/popper.min.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/js/site.js" asp-append-version="true"></script>
在program.cs中我使用
app.UseStaticFiles();
我找到了问题的解决方案
对于前任。
var app = builder.Build();
app.UseStaticFiles();
DbHelpers.CreateDbIfNotExists(app);
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Metrics/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Metrics}/{action=Index}/{id?}");
app.Run();
我将 app.UseStaticFiles 移到了 obj 应用程序下,之前它被放置在 app.usehttps / app.UseRouting 之间,导致了这个问题。