asp.net - 发布到 Azure 时,Area 中的 ASP.NET Core 文件夹未加载资产
问题描述
在我的 ASP.Net Core 3.1 项目 (Visual Studio 2019) 中,我创建了一个区域文件夹并添加了一个名为“Admin”的区域。在 Admin 中,我添加了一个名为“assets”的静态文件夹。这包含我所有的管理区域的 CSS、JS、图像文件:
在 startup.cs 文件中,我添加了以下代码,以便可以链接到 assets 文件夹中的静态文件:
视图中的示例链接如下所示:
当我在本地运行项目并浏览到 /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 没有发布所有文件。
解决方案
Path.Combine(env.ContentRootPath, "Areas/Admin/assets")),RequestPath = "/assets"
- 这行代码意味着当你请求“/assets”时,它会映射到“Areas/Admin/assets”。
- 根据您提供的图片,请求的路径没有问题。
- 但是根据404错误提示,通常会检查请求的文件是否存在。
- 您前面提到的文件已经存在。
- 我还想建议您检查icons.min.css文件是否确实存在于Areas/Admin/assets/css目录中。
- 如果您确定这些文件确实存在,我怀疑问题可能是由文件夹权限引起的。
- 您可以单击此链接查看解决方案。
☑编辑
检查 Azure,似乎只有 .json 文件(以及其中包含 .json 文件的文件夹)正在发布!我直接链接到其中一个 .json 文件并且它可以正确浏览,所以我需要弄清楚为什么 VS 没有发布所有文件。
- 默认情况下发布 ASP.NET Core Web 应用程序时,将包含以下资产:
- 构建工件
- 与以下 globbing 模式匹配的文件夹和文件:
- ***.config(例如,web.config)
- ***.json(例如,appsettings.json)
- wwwroot**
- 您需要在发布时包含所需的文件。
- 您可以单击此链接查看解决方案。
推荐阅读
- ruby-on-rails - 接收 NilClass:Class Cocoon Rails 6 的未定义方法“reflect_on_association”
- r - 无法从 R 安装 github 包,“无法解析代理”
- url - 使用 cURL 的“使用错误/非法格式的 URL 或缺少 URL”?
- swift - FSCalendar 日期在选择时弹出完整的字幕
- node.js - 解密在节点中不起作用(文件加密器)
- c++ - std::future 可以比 std::promise 活得更久吗?
- flutter - Tapgesturerecognizer 在颤动的 webview 中不起作用
- c++ - 如何测量 cudaMalloc 执行时间
- reactjs - React - 如何在使用 fetch 完成 POST 请求后重定向路径
- python - 在 Python 中的函数中多次从 randint() 生成随机数