在 ASP.NET Web 表单中缩小和捆绑 CSS 时出现“403 - 禁止访问:访问被拒绝”错误

"403 - Forbidden: Access is denied" error while minification and bundling of CSS in ASP.NET Web Forms

我最近使用 AWS Elastic Beanstalk 将我的 ASP.NET Web 表单应用程序从托管 VPS 转移到 AWS EC2。当我在托管 VPS 中使用我的 Web 应用程序时,捆绑和缩小工作正常。但是在传输到亚马逊服务器后,javascript 被成功捆绑和缩小,但没有 CSS。当我在浏览器的查看源中打开缩小的 CSS 文件时,它显示以下页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>403 - Forbidden: Access is denied.</title>
<style type="text/css">
<!--
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
fieldset{padding:0 15px 10px 15px;} 
h1{font-size:2.4em;margin:0;color:#FFF;}
h2{font-size:1.7em;margin:0;color:#CC0000;} 
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;} 
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
background-color:#555555;}
#content{margin:0 0 0 2%;position:relative;}
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
-->
</style>
</head>
<body>
<div id="header"><h1>Server Error</h1></div>
<div id="content">
 <div class="content-container"><fieldset>
  <h2>403 - Forbidden: Access is denied.</h2>
  <h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>
 </fieldset></div>
</div>
</body>
</html>

为什么会这样?

最后,在对 Google 进行一些研究后,我弄清楚了到底出了什么问题。借助此处给出的解决方案 http://forums.asp.net/post/5012037.aspx,我了解到捆绑包的虚拟路径不得与 Web 应用程序文件夹中的任何物理路径相匹配。所以,我像这样调用 bundle <webopt:BundleReference runat="server" Path="~/Content/css" /> 并且我的网络应用程序的物理根路径还在 Content 文件夹中包含一个 css 子文件夹。所以,我将我的包重命名为 styles,然后像 <webopt:BundleReference runat="server" Path="~/Content/styles" /> 一样使用它。现在,一切正常。