Връзки в областта Layout към папката Content\Css, разположена в корена на приложението ASP NET MVC

Добро утро/ден/вечер/нощ на всички,

Моля за вашите идеи за работа с Area в ASP NET MVC. Приложението ми има няколко области и всяка има свой собствен _Layout. Как мога да направя връзки вътре в него към подпапка Css (същата със скриптове), намираща се в папка Content в корена? Оформленията от области използват идентични css и файлове с изображения, така че се съмнявам, че трябва да създам нова папка Съдържание във всяка област и да дублирам идентични файлове. Моля, обяснете как трябва да реша проблема. И много благодаря предварително.


person Сергей Чащин    schedule 21.08.2018    source източник
comment
Можете да копирате същите относителни пътища на връзките от _Layout от най-високо ниво. напр. ~/Content/Site.css   -  person Jasen    schedule 22.08.2018
comment
@Jasen, моля, публикувайте го като решение, за да мога да го маркирам като отговор.   -  person Сергей Чащин    schedule 04.10.2018


Отговори (1)


Можете да използвате оператор на виртуален основен път ~

Създаденият за вас шаблонен _Layout ви дава пример.

<link href="/bg~/Content/bootstrap.min.css" rel="stylesheet" type="text/css" />
...
<script src="~/Scripts/bootstrap.min.js"></script>

Дори вътре в дадена област, той ще се преобразува в коренното съдържание и скриптове, така че ресурсите, Bootstrap в този пример, не е необходимо да се копират за всяка област.

Имайте предвид, че това се разрешава от страната на сървъра.

Така че, ако имате нужда от достъп до него в скрипт на страница за преглед:

<script>
    var scriptRoot = "@Url.Content("~/Scripts")";
</script>

И в кода на контролера:

public ActionResult Index()
{
    ViewBag.BoostrapPath = Url.Content("~/Content/boostrap.css");

    return View();
}
person Jasen    schedule 04.10.2018