【问题标题】:Failed to load css when the css file is inside bin folder of web application当 css 文件位于 Web 应用程序的 bin 文件夹中时,无法加载 css
【发布时间】:2013-03-28 13:47:36
【问题描述】:

我正在做一个有很多网站的项目(asp.net mvc3.0)。我们需要为所有网站维护相同的 UI。所以我创建了一个类库并将内容和脚本文件夹作为嵌入式资源放入该库中。它适用于 java 脚本文件,但无法下载 css 类。

加载资源失败:服务器响应状态为 404 (Not Found) weburl/bin/Content/Site.css

请提出一些解决方案。

谢谢, 纳宾

【问题讨论】:

  • 您不想从 bin 文件夹中提供文件。默认情况下,bin 文件夹应该对用户隐藏。对此的设置是在 IIS -> 请求过滤 -> 隐藏段中。
  • 我完全同意 bin 文件夹必须对用户隐藏,否则会产生安全问题。跨多个网站使用单个 css 文件副本的最佳方法是什么。
  • <link href= 指向所有站点的中心位置是完全可以接受的,例如 CDN。就像所有网站都可以有<link rel="stylesheet" type="text/css" href="http://cdn.yoursite.net/content/all.css?v=62ff4813">

标签: asp.net asp.net-mvc-3 web


【解决方案1】:

你不想让它成为一个嵌入式资源(如果你这样做了,你会错误地访问它)。

在您的解决方案资源管理器中单击 css 文件,然后在属性中将构建操作更改为内容。接下来将 Copy to Output Directory 更改为 Copy if Newer.

这将完成您想要的...虽然...我不会以这种方式共享 css...

【讨论】:

  • 这个问题与浏览器尝试下载css文件的方式有关。如果 css 文件位于 bin 外的内容文件夹中,则它可以正常工作。仅当 css 文件位于 bin 文件夹中时才会发生此错误。我想这与 IIS 安全设置有关。
  • 您不能通过这种方法直接访问它(除非您将 bin 公开,这是一个坏主意)...在每个站点中,您需要添加一个 Css.aspx 页面并从那里。如果您不知道该怎么做,请告诉我...
  • 但是不要这样做,如果你可以做一个单独的共享服务器并将你的共享css和其他东西放在那里。
  • 感谢您的回答。使用共享服务器的想法很好,但风险是如果共享服务器关闭,所有网站都会出现问题,这是不惜任何代价的。
  • 那我猜你将不得不在每个站点中创建一个 Css.aspx 页面,然后从代码隐藏中的 bin 目录加载文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-12
  • 1970-01-01
  • 2021-08-31
  • 2019-02-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多