0

当我通过 Visual Studio 2008 运行我的 MVC 应用程序时,该网站在样式、图像等方面看起来不错。

但是,如果我将此构建发布到一个文件夹并使用 IIS 来查看它,那么样式就已经全部到位,并且图像也不正确。

最初,我认为这是关于样式表的一些错误,但我只使用了 MVC 模板开箱即用的样式表的略微修改版本。

我在发布网站或 CSS 表方面做错了吗?

亲切的问候,

布雷特

4

3 回答 3

3

最可能的罪魁祸首是您的路径相对于站点的根目录,并且您在不在根目录的文件夹中发布。您需要更改 CSS 中的 URL 以使它们与 CSS 文件相关,并在标记中使用 Url.Content 以便动态翻译 URL。

<img src='<%= Url.Content( "~/Content/images/image.png" ) %>' alt="" />
于 2009-06-10T19:56:54.633 回答
1

我遇到了几乎完全相同的问题,然后记住了我的 URL。如果您在 IIS 版本中查看源代码,您应该能够看到指向 CSS 文件等时 URL 不正确...

我用辅助方法替换了我的 master 中的所有 CSS 和 JS 调用,例如:

<%= Html.RegisterCSS("site.css") %>
<%= Html.RegisterScript("jquery-1.3.2.min.js") %>

希望这可以帮助...


编辑:啊,是的,我创建了一个助手来“帮助”我。所以,我在帮助程序中有以下代码。

public static string RegisterScript(this System.Web.Mvc.HtmlHelper helper, string scriptFileName)
    {
        string scriptRoot = VirtualPathUtility.ToAbsolute("~/Scripts");
        string scriptFormat = "<script src=\"{0}/{1}\" type=\"text/javascript\"></script>\r\n";
        return string.Format(scriptFormat, scriptRoot, scriptFileName);
    }
    public static string RegisterCSS(this System.Web.Mvc.HtmlHelper helper, string FileName)
    {
        //get the directory where the scripts are
        string Root = VirtualPathUtility.ToAbsolute("~/Content");
        string Format = "<link href=\"{0}/{1}?{2}\" rel=\"stylesheet\" type=\"text/css\" />";
        return string.Format(Format, Root, FileName, DateTime.Now.ToString("hhmmss"));
    }

而且我有一个“陷阱”,即 IE8 在 IE7 模式下显示。这让我很头疼,直到一位同事指出...我这里没有 IE8,但我认为它在开发人员工具部分。

于 2009-06-11T03:32:29.657 回答
0

这完全是我的错!

我在页面上使用标签来尝试显示表格数据 - 当我在 Visual Studio 中运行项目时,这表现得很好,但是当我发布网站时,页面上的 CSS 在 Internet Explorer 7 和 8 的页面上出现扭曲.

但是,当我在 Firefox 3 中查看相同的已发布版本时,该网站似乎在页面上正确呈现......!奇怪,我知道。

我确实尝试更正 CSS 以修复在 Internet Explorer 中无法正确呈现的部分,但由于时间原因最终完全删除了标签,而是引入了标签,这让我非常沮丧!

于 2009-06-11T18:51:24.220 回答