Не удается найти контент при работе на сервере с asp.net mvc 3. (вызвано маршрутизацией) - PullRequest
2 голосов
/ 24 августа 2011

У меня есть настройка приложения, которая запускается на сервере, где URL-адрес перезаписывается в приложение.он идет servername.com/myapp

Я маршрутизировал приложение следующим образом:

        routes.MapRoute(
            "Default", // Route name
            "myapp/{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

, чтобы оно всегда начиналось с «myapp», в противном случае сервер перенаправит URL-адрес.Теперь контент не может быть найден.Я пытался ввести URL-адреса вручную, но это не работает.Вот как выглядит мой взгляд:

<link href="@Url.Content("~/Content/themes/Site.css")" rel="stylesheet" type="text/css" />

Ничего странного в этом нет, поэтому я не понимаю, почему это не должно работать.Возможно, сервер также переписывает URL-адреса для содержимого, поэтому есть ли способ настроить Url.Content () для сопоставления соответствующим образом?

1 Ответ

1 голос
/ 25 августа 2011

У меня недавно была такая же проблема.Вот что я использовал для ее решения, хотя кто-то может найти более простой способ.

На веб-сервере разработки он использовал корень сервера, который был разрешен как «/», а на веб-сервере развертывания - «/ appname».Я мог бы жестко связать ссылку с одним, но для другого он явно не удался.Ответ заключается в создании строк, которые находят его программно.

@{
string rootpath = HttpContext.Current.Request.ApplicationPath;
if(rootpath != "/") { rootpath = rootpath + "/"; }// add closing slash if missing
string contentpath = rootpath + "Content/themes/Site.css";
}
<link href="@contentpath" rel="stylesheet" type="text/css" />

Я поместил код rootpath в статическую функцию в отдельном классе, поскольку использовал его на каждой странице со ссылками или изображениями.

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