ASP .Net MVC в VS2008 - опубликованная сборка выглядит иначе - PullRequest
0 голосов
/ 10 июня 2009

Когда я запускаю свое приложение MVC через Visual Studio 2008, веб-сайт выглядит отлично с точки зрения стиля, изображений и т. Д.

Но если я опубликую эту сборку в папке и использую IIS для ее просмотра, стилизация повсеместно, а изображения неправильные.

Изначально я думал, что это какая-то ошибка от моего имени в отношении таблицы стилей, но я использую только слегка модифицированную версию таблицы стилей, которая поставляется из коробки с шаблоном MVC.

Я делаю что-то не так с публикацией сайта или с таблицей CSS?

С уважением,

Brett

Ответы [ 3 ]

3 голосов
/ 10 июня 2009

Наиболее вероятный виновник в том, что ваши пути указаны относительно корня сайта, и вы публикуете в папке, которая не находится в корне. Вы захотите изменить свои URL-адреса в своем CSS, чтобы сделать их относительными к CSS-файлу, а в своей разметке - использовать Url.Content, чтобы URL-адреса переводились динамически.

<img src='<%= Url.Content( "~/Content/images/image.png" ) %>' alt="" />
1 голос
/ 11 июня 2009

У меня была почти такая же проблема, затем я вспомнил свои URL. Если вы просматриваете исходный код в своей версии IIS, вы должны видеть, что URL-адреса неверны при указании файлов CSS и т. Д. *

Я заменил все вызовы CSS и JS в своем мастере вспомогательными методами, например:

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

Надеюсь, это поможет ...


Edit: Ааа, да, я создал помощника, чтобы "помочь" мне. Итак, у меня есть следующий код в помощнике.

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 здесь, но я думаю, что это в разделе инструментов разработчика.

0 голосов
/ 11 июня 2009

Это была моя вина!

Я использовал теги на своей странице, чтобы попытаться отобразить табличные данные - это нормально отображалось, когда я запускал проект из Visual Studio, но когда я публиковал сайт, CSS на странице казался искаженным на странице в Internet Explorer. 7 и 8.

Однако, когда я просматривал ту же опубликованную сборку в Firefox 3, веб-сайт отображался правильно на странице ...! Странно, я знаю.

Я попытался исправить CSS, чтобы исправить части, которые неправильно отображались в Internet Explorer, но в итоге полностью удалили теги из-за времени, и вместо этого принесли теги, к моему ужасу!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...