【问题标题】:css file not found - asp.net core web application未找到 css 文件 - asp.net 核心 Web 应用程序
【发布时间】:2019-02-24 17:04:16
【问题描述】:

我正在寻找一些可能非常简单的帮助。我已经创建了一个 asp.net 核心 Web 应用程序(我从 Empty 选项开始)并且我正在逐步构建它。似乎我的css文件没有被读取或找到。当我启动应用程序时,我可以看到我的 html 页面看起来不像它应该的那样,当我在控制台下的边缘使用开发人员工具时,有一个“HTTP404:未找到 - 服务器没有找到与请求的 URI 匹配的任何内容(统一资源标识符)。GET - http://localhost:8888/css/site.css" 错误,这表明我的 css 文件确实没有被读取或找到。现在,我的 css 文件位于项目根目录中名为“css”的文件夹下。当我说 root 时,我的意思是我刚刚创建了一个名为 css 的文件夹,并且路径与 Program.cs 或 Startup.cs 相同。我的项目中没有wwwroot(好像asp.net core 2.2已经默认去掉了?)而且css文件夹也不存在。如下我的html页面中的代码,我尝试在“/css”之前添加〜但仍然没有。

<head>
<link href="/css/site.css" rel="stylesheet" />
</head>

提前感谢您的任何建议或指导。

弗朗西斯科

【问题讨论】:

    标签: asp.net-core-mvc serving


    【解决方案1】:

    如果您希望在 Web 根目录之外提供静态文件(例如在名为 MyStaticFiles 的文件夹中)并且其结构类似于

    -YourProject
    --MyStaticFiles
    ---css
    ----site.css
    --Program.cs
    --Startup.cs
    

    您可以使用app.UseStaticFiles,参考Serve files outside of web root

    public void Configure(IApplicationBuilder app)
    {  
      app.UseStaticFiles(new StaticFileOptions
      {
        FileProvider = new PhysicalFileProvider(
            Path.Combine(Directory.GetCurrentDirectory(), "MyStaticFiles")),
        RequestPath = "/StaticFiles"
      });
    }
    

    那么你就可以从http://localhost:8888/StaticFiles/css/site.css得到css了

    &lt;link rel="stylesheet" href="~/StaticFiles/css/site.css" /&gt;

    【讨论】:

      【解决方案2】:

      发生这种情况是因为环境 webroot 与当前所在的 css 文件夹不同。您必须更改 webroot 或将 css 文件夹移动到当前 webroot。 通常 wwwroot 文件夹设置在环境 webroot 中

      【讨论】:

      • 谢谢,webroot在哪里可以改,是在项目本身的属性下吗?
      • 全部,无视,现在关闭了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-17
      • 2017-05-25
      • 2018-06-15
      • 2018-05-14
      • 2018-12-26
      • 1970-01-01
      • 2021-05-25
      相关资源
      最近更新 更多