MVC网站图片路径在发布版本中无效

时间:2013-02-11 15:01:38

标签: asp.net-mvc asp.net-mvc-4

在本地运行我的mvc网站(VS IIS)时,图像显示正确:

css片段:

.sprites {
    background: transparent url(../images/sprites.png) no-repeat 0 0;
}

但是,当站点发布到服务器或本地IIS(而不是VS IIS)时,图像无法加载(提供无效路径)

在服务器上正确显示图片的唯一方法是修改css文件而不是"../images/sprites.png" "/content/images/sprites.png"

为什么?

3 个答案:

答案 0 :(得分:5)

我明白了:

MVC4附带\App_Start\BundleConfig.cs文件,用于最小化css / js脚本。

每当我发布我的网站(RELEASE)时,它都会调用\ Content \ css(最小化文件),其中包含我的图像的路径(“../ images / etc ...”),这是不正确的,因为css文件不再存在WITHIN /Content/Styles/style.css但/ Content / css(最小化版本)。

我不得不修改它:

自:

bundles.Add(new StyleBundle("~/Content/css").Include(
                        "~/Content/styles/all.css",
    ..

要:

        bundles.Add(new StyleBundle("~/Content/styles/css").Include(
                "~/Content/styles/all.css",

...

并在我的layout.cshtml中:

@Styles.Render("~/Content/styles/css")

答案 1 :(得分:0)

看起来CSS中的路径没有指向正确的图像位置。 ..表示一级,我假设目录没有images文件夹,因此你必须明确指定content / images文件夹。

答案 2 :(得分:0)

css路径必须与两个系统上的图像路径相同。 是这样吗?