【问题标题】:IIS deployment cannot contains files for wwwroot folder in asp.net core 2.2 razor pagesIIS 部署不能包含 asp.net core 2.2 razor 页面中 wwwroot 文件夹的文件
【发布时间】:2019-12-30 06:54:33
【问题描述】:

我的 asp.net core razor 页面应用程序的 wwwroot 文件夹中有 JS 和 CSS 的子文件夹。应用程序在本地环境中运行良好,但在 IIS 上部署项目时,wwwroot 文件夹中不包含任何子文件夹或文件。

即使我手动将文件夹和文件上传到 wwwroot 文件夹,它也不起作用,也不会在浏览器中加载 JS 和 CSS 文件。

请注意,我的应用程序中没有“环境”标签。

【问题讨论】:

  • 静态文件浏览默认在 .net core 中被禁用。先启用它,然后你就可以在浏览器中访问像js这样的静态文件了

标签: c# iis razor-pages asp.net-core-2.2


【解决方案1】:

尝试编辑您的 asp.net 核心项目的 .csproj 文件:

删除所有 ItemGroup 标记及其内容,然后添加此

<ItemGroup>
    <None Include="wwwroot\*" />
</ItemGroup>

您可以参考此链接了解更多详情:

Visual Studio publish profiles for ASP.NET Core app deployment

【讨论】:

    【解决方案2】:

    设置js/css路径有两种方式

    1. 绝对路径
    2. 相对路径

    绝对路径是,你必须在网络服务器中给出正确的路径。

    http://<website name>/css/site.css
    

    相对路径是,你可以给文件页面相对于当前页面。

    假设您的页面来自http://&lt;website name&gt;/index.html 相对路径将是./css/site.css

    最好尝试从浏览器访问 js 或 css 文件。可能是这些文件夹没有权限访问。

    如果您打开开发工具,您可以在网络选项卡或控制台中看到错误。根据 HTTP 代码,你可以判断发生了什么

    【讨论】:

    • 在使用发布配置文件发布应用程序时,wwwroot 文件夹不包含任何子文件夹和文件。
    • 您是否尝试在“复制到输出目录”选项下选择文件属性?
    【解决方案3】:

    在我的场景中,我将 MVC 添加到我的 .Net 5 API

    解决方案是添加

     app.UseStaticFiles();
    

    到 Startup.cs

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 2018-12-22
      • 2019-06-10
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      • 2021-07-04
      相关资源
      最近更新 更多