我有一个使用ASP.NET MVC 4.5,它使用一些css文件。 css指的是一些图像。
css文件位于此路径中:
WebSiteRoot\Content\css\services\File.CSS
图片位于此路径中:
\WebSiteRoot\Content\img\servicesbubble\image.png
css有这样的呼唤:
background:transparent url('../../img/servicesbubble/image.png') no-repeat 0px 0px;
当我在localhost中运行应用程序时,它可以工作。但是当我上传到托管(Appharbor)它不起作用。 为什么?什么是应用程序根目录的最佳方式?
在服务器中,http get尝试使用此错误的URL
WebSite.com/img/servicesbubble/desktop.png
更新:我正在使用名为bundling的.NET framework 4.5功能将这些CSS与另一个CSS合并。
答案 0 :(得分:2)
您的CSS文件路径似乎发生了变化。我看到的与您的网站相关的两个CSS文件是http://tulpepwebsite.apphb.com/Content/css/servicescss?v=sdm08D5sRu2I00dA0phyVTYZ_QU8Nfp27wHtmmE0Gzk1和http://tulpepwebsite.apphb.com/Content/GeneralCSS?v=9kvtUcooQua0D4nQT8wZ-4_Gm6OcRd-J5SkjMxwKiyQ1。 (另一个来自谷歌字体服务。)你需要弄清楚为什么会发生这种情况。
编辑:好的,我会猜测一下。你可能正在使用new ASP.NET 4.5 bundling feature。但是如果你这样做的话,将CSS苍蝇捆绑在不同的目录中是没有意义的。
答案 1 :(得分:2)
您的问题实际上来自于您将css缩小到与最初存在的CSS不同的目录。
更具体地说: http://tulpepwebsite.apphb.com/Content/css/servicescss ?v = sdm08D5sRu2I00dA0phyVTYZ_QU8Nfp27wHtmmE0Gzk1
所以../../会把你带到http://tulpepwebsite.apphb.com/Content
CSS文件中的网址始终与CSS文件本身的位置有关。
答案 2 :(得分:0)
您的CSS位置与您的想法不同:
WebSiteRoot\Content\css\File.CSS
而不是
WebSiteRoot\Content\css\services\File.CSS