Docker Asp.net核心应用程序将无法加载我的JS,imgs

福克斯部署

我有一个asp.net核心应用程序,在发布时运行良好。我将使用以下一系列命令将其部署到docker映像中,从本MSFT指南中删除了全部内容。

docker build -t myimage -f Dockerfile .
docker images
docker create myimage
docker run -it -p 5000:80 -d myimage

这是我用来构成映像的Dockerfile,顺便说一句。

#Dockerfile
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0
COPY /bin/Release/netcoreapp3.0/publish/. app/
EXPOSE 80 443 5000 5001
ENTRYPOINT ["dotnet", "app/KittenSignalR.dll"]

我可以从浏览器连接到该站点,但仅提供视图文件本身,而不会加载JS,图像等。 在此处输入图片说明

所有其他资产在Chrome控制台中显示此错误。

GET http://localhost:5000/lib/bootstrap/dist/css/bootstrap.css net::ERR_ABORTED 404 (Not Found)

但是,当我通过bash检查容器本身时,我可以看到所有内容,只是没有提供内容。

docker exec -i -t 46263b09f1 /bin/bash
root@46263b09f1d3:/# cd app/wwwroot/js
root@46263b09f1d3:/app/wwwroot/js# ls
Class.cs  chat.js  signalr  site.js

有小费吗?

我的应用程式中的Startup.cs

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/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.UseDefaultFiles();
            app.UseStaticFiles();
            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapHub<ChatHub>("/chatHub");
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });
        }
枪手2171

简短的回答:您的工作目录是/,它必须是/app


当您使用ASP.Net Core提供静态文件时,Microsoft会这样说:

必须使应用程序的Web主机知道内容根目录。

WebHost.CreateDefaultBuilder方法将内容根目录设置为当前目录

来源,重点是我的。

查看您的Dockerfile,您永远不会更改工作目录,因此它与您从(aspnet:3.0映像)1派生它的基础映像相同

由于您的工作目录为/,因此应用程序正在寻找一个wwwroot文件夹(基本上是/wwwroot),该文件夹找不到。这就是您在所有wwwroot资产上获得404的原因。

要解决此问题,只需更改Docker映像的工作目录并更新入口点以使用该WD的相对路径。

#Dockerfile
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0
COPY /bin/Release/netcoreapp3.0/publish/. app/
EXPOSE 80 443 5000 5001
WORKDIR app
ENTRYPOINT ["dotnet", "KittenSignalR.dll"]

1值得一提的是要将文件复制到并将工作目录设置为app这是相对目录路径,我强烈建议您将其设为绝对(/app)。

假设aspnet:3.0图像有一个默认的工作目录/,但我不能肯定。

保持相对状态意味着您将文件夹结构置于基础映像的默认工作目录之外。可能是根,也可能不是。最好确定绝对(双关语意)并使其成为绝对路径。

#Dockerfile
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0
COPY /bin/Release/netcoreapp3.0/publish/. /app/
EXPOSE 80 443 5000 5001
WORKDIR /app
ENTRYPOINT ["dotnet", "KittenSignalR.dll"]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我无法使用“ host.docker.internal:some-port”将我的ASP .NET应用程序从Docker容器连接到我的计算机主机数据库。

来自分类Dev

请求将nginx反向代理挂起到Docker上的ASP.NET 5 Web应用程序

来自分类Dev

如何将asp.net应用程序部署到Linux服务器上的Docker容器?

来自分类Dev

Docker-ASP.CORE 2.2应用程序和SSH

来自分类Dev

如何取消ASP.NET Core应用程序以重启Docker容器

来自分类Dev

通过https的docker中的Asp.Net-Core应用程序

来自分类Dev

Docker:如何在ASP.NET Core应用程序中读取configmap和密码?

来自分类Dev

如何使用 docker 在 asp.net core 中创建 angular 4 应用程序设置的图像

来自分类Dev

在 docker 容器内运行 ASP.NET 4.6 应用程序 - 站点总是 404s

来自分类Dev

使用 Docker Compose 的容器化 .net 核心应用程序无法解析 MongoDb 容器名称

来自分类Dev

无法在IIS Express中启动asp.net核心Web应用程序

来自分类Dev

无法在 ASP.NET 核心应用程序中恢复 Bower 包?

来自分类Dev

.net 核心 docker 映像,每个客户的应用程序设置

来自分类Dev

将rc2 asp.net核心应用程序发布到Azure

来自分类Dev

使用发布管道将 Asp.net 核心 Web 应用程序部署到 azure vm

来自分类Dev

关闭asp.net核心应用程序

来自分类Dev

gitlab-ci构建asp.net核心docker

来自分类Dev

Linux上的asp.net核心docker + App Service

来自分类Dev

带有 linux docker 容器的 Asp.net 核心

来自分类Dev

ASP.NET Web应用程序“无法加载程序集“ App_Web_”

来自分类Dev

ASP.NET Web应用程序“无法加载程序集“ App_Web_”

来自分类Dev

ASP.NET Docker UserSecrets的位置

来自分类Dev

显示来自 ASP.NET Core 应用程序的 docker 日志控制台的跟踪和调试消息

来自分类Dev

使用 docker-compose 从 ASP.NET Core 2 Web 应用程序连接到 MySql 8

来自分类Dev

无法加载共享库“ libgdiplus”-Docker [具有Aspose API的.NET应用程序]

来自分类Dev

我还应该做什么来运行我的 asp.net 核心应用程序?

来自分类Dev

为什么ASP.NET Core应用程序无法在同一域的iframe中加载?

来自分类Dev

具有多个项目的asp.net应用程序无法加载页面代码类型

来自分类Dev

为IIS配置后加载我的ASP.NET应用程序时发生错误

Related 相关文章

  1. 1

    我无法使用“ host.docker.internal:some-port”将我的ASP .NET应用程序从Docker容器连接到我的计算机主机数据库。

  2. 2

    请求将nginx反向代理挂起到Docker上的ASP.NET 5 Web应用程序

  3. 3

    如何将asp.net应用程序部署到Linux服务器上的Docker容器?

  4. 4

    Docker-ASP.CORE 2.2应用程序和SSH

  5. 5

    如何取消ASP.NET Core应用程序以重启Docker容器

  6. 6

    通过https的docker中的Asp.Net-Core应用程序

  7. 7

    Docker:如何在ASP.NET Core应用程序中读取configmap和密码?

  8. 8

    如何使用 docker 在 asp.net core 中创建 angular 4 应用程序设置的图像

  9. 9

    在 docker 容器内运行 ASP.NET 4.6 应用程序 - 站点总是 404s

  10. 10

    使用 Docker Compose 的容器化 .net 核心应用程序无法解析 MongoDb 容器名称

  11. 11

    无法在IIS Express中启动asp.net核心Web应用程序

  12. 12

    无法在 ASP.NET 核心应用程序中恢复 Bower 包?

  13. 13

    .net 核心 docker 映像,每个客户的应用程序设置

  14. 14

    将rc2 asp.net核心应用程序发布到Azure

  15. 15

    使用发布管道将 Asp.net 核心 Web 应用程序部署到 azure vm

  16. 16

    关闭asp.net核心应用程序

  17. 17

    gitlab-ci构建asp.net核心docker

  18. 18

    Linux上的asp.net核心docker + App Service

  19. 19

    带有 linux docker 容器的 Asp.net 核心

  20. 20

    ASP.NET Web应用程序“无法加载程序集“ App_Web_”

  21. 21

    ASP.NET Web应用程序“无法加载程序集“ App_Web_”

  22. 22

    ASP.NET Docker UserSecrets的位置

  23. 23

    显示来自 ASP.NET Core 应用程序的 docker 日志控制台的跟踪和调试消息

  24. 24

    使用 docker-compose 从 ASP.NET Core 2 Web 应用程序连接到 MySql 8

  25. 25

    无法加载共享库“ libgdiplus”-Docker [具有Aspose API的.NET应用程序]

  26. 26

    我还应该做什么来运行我的 asp.net 核心应用程序?

  27. 27

    为什么ASP.NET Core应用程序无法在同一域的iframe中加载?

  28. 28

    具有多个项目的asp.net应用程序无法加载页面代码类型

  29. 29

    为IIS配置后加载我的ASP.NET应用程序时发生错误

热门标签

归档