在我的 ASP.Net Core 3.1 项目 (Visual Studio 2019) 中,我创建了一个 Areas 文件夹并添加了一个名为“Admin”的区域。在管理中,我添加了一个名为“assets”的静态文件夹。这包含我的管理区域的所有 CSS、JS、图像文件:
在startup.cs文件中,我添加了以下代码,以便可以链接到 Assets 文件夹中的静态文件:
View 中的示例链接如下所示:
当我在本地运行项目并浏览到/admin 时,所有资源(CSS、JS、图像等)都会加载,并且网站会正确显示。
但是,当我将项目发布到 azurewebsites.net 时,当我浏览到/admin 时,资源未加载! View 已渲染,但 CSS、JS 和图像链接不起作用。
我已检查服务器, Assets 文件夹和文件位于服务器上。
任何有关如何在 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中强>目录。
- 如果您确定这些文件确实存在,我怀疑问题可能是由文件夹权限引起的。
- 您可以 click this link 查看解决方案。
☑编辑
Checking on Azure, it seems as if only the .json files (and folders that have .json files in them) are being published! I linked directly to one of the .json files and it browsed correctly so I need to figure out why VS isn't publishing all the files.
- 默认发布 ASP.NET Core Web 应用程序时,包含以下资源:
- 构建工件
- 与以下通配模式匹配的文件夹和文件:
- ***.config(例如 web.config)
- ***.json(例如 appsettings.json)
- wwwroot**
- 您需要在发布时包含所需的文件。
- 您可以 click this link 查看解决方案。
关于发布到 Azure 时,区域中的 ASP.NET Core 文件夹不会加载资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67905536/