我正在用MVC4编写的应用程序港口运行应用程序。
一堆css文件不起作用。在我的本地计算机上,在调试模式下,我看到了应用程序的代码和文件。应用程序的运行情况与预期一致。
<link href="/Content/css/home/basic-jquery-slider.css" rel="stylesheet"/>
<link href="/Content/css/home/Home.css" rel="stylesheet"/>
当我将应用程序上传到Appharbor时,我在代码中看到了捆绑包,但应用程序无法工作。
<link href="/Content/css/home?v=zhVOIpUNuvCOZhJyBcQWpMlozayor4te6k-pM29wHqI1" rel="stylesheet"/>
当我在href
中浏览该链接时,我得到403 -禁止:访问被拒绝。
如何解决这个问题?
发布于 2012-08-23 06:22:49
我的猜测是路径Content/css
存在于您的应用程序的磁盘上。在这种情况下,IIS将处理请求,而不是MVC。
确保包的虚拟路径( StyleBundle构造函数的参数)与文件系统中的文件夹不匹配。
从评论中:
“创建捆绑包时应遵循的一个好约定是在捆绑包名称中包含" bundle”作为前缀。这将防止可能的路由冲突。“
发布于 2012-11-28 11:07:20
此问题是因为在默认情况下,.NET不“处理”具有.js或.css扩展名的请求。
有两种修复方法(你只需要做一种)
A)从包名称中删除扩展名。(推荐)这将导致.NET处理请求并通过BundleModule运行该请求。
B)将其添加到system.webServer部分的web.config中,这将导致.NET通过BundleModule运行.js和.css请求。
<modules runAllManagedModulesForAllRequests="true">
<remove name="BundleModule" />
<add name="BundleModule" type="System.Web.Optimization.BundleModule" />
</modules>
感谢Ray Moro,他找出了真正的原因,并在我的博客上与我分享:http://blog.cdeutsch.com/2012/11/fixing-404-errors-for-aspnet-mvc-apps.html
发布于 2015-01-30 15:22:23
当我尝试在AppHarbor上部署我的ASP.NET MVC应用程序时,我也遇到了这种情况。
我有一个样式表包,名为
@Styles.Render("~/Content/bootstrap")
文件夹结构是
--内容
--内容\引导\ ...
只需将包名称更改为"~/Content/bootstrap-css"
,我的问题就解决了。
https://stackoverflow.com/questions/12081255
复制相似问题