Чем объясняется ссылка на Blazor начиная с тильды? "~ / (...)" - PullRequest
2 голосов
/ 16 апреля 2020

Чем объясняется ссылка на Блазор, начинающаяся с тильды? "~ /(...)"

Это можно найти в файле _Hosts.cs html:

<link href="~/css/Chart.css" rel="stylesheet" />
<link href="~/css/site.css" rel="stylesheet" />

Каково точное значение" ~ "? В чем разница с «/» или без?

Важно ли (не) использовать «~», если вы ссылаетесь на внешнюю библиотеку?

Я не смог найти объяснение для это.

Ответы [ 2 ]

1 голос
/ 16 апреля 2020

В чем разница с "/" или без?

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

/ dev / / prod /

Вы не можете использовать / и не хотите знать имя во время компиляции.

ASP. NET MVC (НЕ (!) Blazor, что происходит раньше) добавляет root источник папки приложения, как показано в запросе, и определяет его во время выполнения.

0 голосов
/ 17 апреля 2020

В файлах Razor .cs html тильда-sla sh (~ /) указывает на сеть root.

Веб по умолчанию root - wwwroot.

Путь, начинающийся с ~ /, называется виртуальным путем.

Tilde Sla sh - это особенность Razor, которая преобразует относительный путь в абсолют. Таким образом, путь к href в <link href="~/css/Chart.css" rel="stylesheet" /> будет преобразован в абсолютный путь, подобный следующему:

<link href="/css/Chart.css" rel="stylesheet" />

Обратите внимание, что файл _Hosts.cs html содержит base такой элемент:

<base href="~/" />

"~ /" - это относительный путь, и он преобразуется в <base href="/" />

Базовый URL-адрес используется для разрешения относительных URL-адресов, когда NavigationManager требуется для получения абсолютного URL.

Важно ли (не) использовать "~", если вы ссылаетесь на внешнюю библиотеку?

Если external Вы имеете в виду вне пространства приложения Blazor, я думаю, вам вообще не следует использовать функцию tilde-sla sh. Вы должны указать абсолютный URL, например:

<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"

Примечание. Насколько мне известно, единственное место, где используется тильда-слэ sh в контексте Blazor, - это базовый элемент. в файле _Host.cs html

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

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