c# - 在 Rasperry Pi 上 dockerize .net core mvc 应用程序后 wwwroot 文件夹中没有静态文件
问题描述
我是 docker 新手,遇到一个无法处理的问题。我创建了 .net 核心 MVC 应用程序,这个应用程序应该可以在树莓派上运行,所以我在 HypriotOS 上的树莓派上对我的应用程序进行了 docker 化,一切都很好,但是没有找到来自 wwwroot(默认静态文件夹)的一些图像(404)。在 wwwroot 文件夹中,我有一些 css、js 和图像文件,并且 css、js 和一些图像可用,但没有几个 .png 文件。我不知道为什么。
- .net 核心版本是 2.2
- 我厌倦了在我的 Dockerfile 中添加行 VOLUME ["/wwwroot"]
- 在 Startup.Configure() 方法中我有行 app.UseStaticFiles();
我的 Dockerfile
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /app
# copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# copy everything else and build app
COPY . ./
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS runtime
WORKDIR /app
COPY --from=build /app/out .
ENTRYPOINT ["dotnet", "TestApp.dll"]
构建和运行 Docker 镜像的命令:
docker build -t testapp .
docker run -p 8080:80 --name testapp testapp
Dockerize 正确通过,没有错误。该应用程序可从外部访问,一切正常,但未显示某些图形(404 Not Found)。
解决方案
检查您的 .dockerignore 文件是否有任何可能与丢失的文件/路径匹配的内容。这就是为我解决这个问题的原因。
推荐阅读
- php - 传递给 Illuminate\Cookie\Middleware\EncryptCookies::encrypt() 的参数 1 必须是 Symfony\Component\HttpFoundation\Response 的实例
- reporting-services - 从 VS 2019 部署报告后,SSRS 2016 以目录浏览器模式出现
- java - 颤振谷歌地图致命例外:androidmapsapi-ZoomTableManager
- python - 无法理解输出背后的原因
- perl - 为 Raku 构建多个后端失败
- mysql - Ubuntu 20.04 设置mysql phpmyadmin root 密码
- angular - 错误:预期的间谍导航已被调用:[ [ '/client/register' ] ] 但它从未被调用
- java - Lambdas 中的局部变量与匿名内部类
- c# - 如何在 Unity 中的 2 个场景之间进行通信?
- python - 在打印到控制台以使事情看起来更好时,是否有一堆换行符?