【问题标题】:ASP.NET Core folder in Area is not loading assets when published to Azure发布到 Azure 时,Area 中的 ASP.NET Core 文件夹未加载资产
【发布时间】:2021-08-26 12:57:21
【问题描述】:

在我的 ASP.Net Core 3.1 项目 (Visual Studio 2019) 中,我创建了一个区域文件夹并添加了一个名为“Admin”的区域。在 Admin 中,我添加了一个名为“assets”的静态文件夹。这包含我在管理区的所有 CSS、JS、图像文件:

在 startup.cs 文件中,我添加了以下代码,以便可以链接到 assets 文件夹中的静态文件:

我从这里获取了该代码:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-3.1#serve-files-outside-of-web-root

视图中的示例链接如下所示:

当我在本地运行项目并浏览到 /admin 时,所有资产(CSS、JS、图像等)都在加载,并且网站正常显示。

但是,当我将项目发布到 azurewebsites.net 时,当我浏览到 /admin 时没有加载资产!视图已呈现,但 CSS、JS 和图像链接不起作用。

我已经检查了服务器,并且资产文件夹和文件在服务器上。

对于如何在 Azure 上进行这项工作的任何帮助或建议将不胜感激!

编辑: 当我在页面上打开 Web 开发工具 (F12) 时,链接显示为 404 错误:

"/assets/css/icons.min.css" 不存在,但为什么不像我在本地运行时那样指向 /Areas/Admin/assets/css?

编辑: 检查 Azure,似乎只有 .json 文件(以及其中包含 .json 文件的文件夹)正在发布!我直接链接到其中一个 .json 文件并且它可以正确浏览,所以我需要弄清楚为什么 VS 没有发布所有文件。

【问题讨论】:

  • 能在浏览器中查看具体的错误信息(F12)告诉我们吗?比如是不是404错误?具体报错信息是什么?
  • 孙一辉您好。谢谢您的帮助。我已将屏幕截图添加到问题的末尾

标签: asp.net asp.net-mvc azure visual-studio asp.net-core


【解决方案1】:

Path.Combine(env.ContentRootPath, "Areas/Admin/assets")),RequestPath = "/assets"

  1. 这行代码意味着当您请求“/assets”时,它将映射到“Areas/Admin/assets”。
  2. 根据您提供的图片,请求的路径没有问题。
  3. 但是根据404错误提示,一般会检查请求的文件是否存在。
  4. 您之前提到的文件已经存在
    • 我还建议您检查 icons.min.css 文件是否确实存在于 Areas/Admin/assets/css strong> 目录。
  5. 如果您确定这些文件确实存在,我怀疑问题可能是由文件夹权限引起的。

☑编辑

在 Azure 上检查,似乎只有 .json 文件(以及其中包含 .json 文件的文件夹)正在发布!我直接链接到其中一个 .json 文件并且它可以正确浏览,所以我需要弄清楚为什么 VS 没有发布所有文件。

  1. 默认发布 ASP.NET Core Web 应用程序时,包含以下资产:
    1. 构建工件
    2. 与以下通配符模式匹配的文件夹和文件:
      • ***.config(例如,web.config)
      • ***.json(例如,appsettings.json)
      • wwwroot**
  2. 您需要在发布时包含所需的文件。

【讨论】:

  • 感谢您的步骤。我仔细检查了第 4 步,从我看到的资产文件夹中唯一的 .json 文件正在发布!请参阅上面有问题的图片。其他资产(.js、.css、img 等)不是构建的一部分。
  • 我修改了之前的答案,你可以查看一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-01
  • 2022-01-21
  • 2021-08-19
相关资源
最近更新 更多