【问题标题】:ASP .Net MVC in VS2008 - published build appears differentlyVS2008 中的 ASP .Net MVC - 发布的构建看起来不同
【发布时间】:2009-06-10 19:45:56
【问题描述】:

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

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

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

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

亲切的问候,

布雷特

【问题讨论】:

  • 您在样式表中使用的是绝对网址还是相对网址?

标签: asp.net-mvc stylesheet publish


【解决方案1】:

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

<img src='<%= Url.Content( "~/Content/images/image.png" ) %>' alt="" />

【讨论】:

    【解决方案2】:

    我遇到了几乎完全相同的问题,然后记住了我的网址。如果您在 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,但我认为它在开发人员工具部分。

    【讨论】:

    • 这并不是 CSS 文件没有被拾取 - 它是......但一些元素在通过 IIS 运行时表现不同......另外,我尝试添加 Html.RegisterCSS 行正如你上面提到的,但没有提及。也尝试过谷歌搜索,但没有任何结果。
    • 好的——这一切都更有意义了——但是你在哪里存储你创建的辅助函数呢?在该页面的代码隐藏中,还是在该页面的控制器中?
    • 我在 Helpers 文件夹中创建了一个文件,我在其中收集了所有这些类型的视图扩展...这样我可以重复使用。我目前(巧合地)正在编写一个助手来给我一个像 Rails 的“date_select”这样的函数......(喘气!)/Helpers/ViewExtensions.cs
    【解决方案3】:

    这完全是我的错!

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-03-13
      • 2012-12-15
      • 1970-01-01
      • 2021-09-07
      • 2011-11-20
      • 1970-01-01
      • 2018-07-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多