ASP.Net MVC Как визуализировать элементы скрипта? - PullRequest
0 голосов
/ 25 января 2019

Может ли кто-нибудь объяснить мне разницу между:

<script src="/Scripts/custom.js"></script>

и (добавлен символ тильды)

<script src="~/Scripts/custom.js"></script>

и

@Scripts.Render("~/Scripts/custom.js")

в приложении ASP.NET MVC (в основном в коде Razor View)?

Я осведомлен , что обычно используется @Scripts.Renderдля связывания и минимизации скриптов.Как вы можете видеть в моем третьем примере, я не использую @Scripts.Render("~/bundles/*") специально, потому что я не делаю этот вопрос похожим на вопрос о пакетировании.Я хотел бы знать, каков будет лучший способ рендеринга (специфичных для страницы) скриптов.Есть ли какая-либо другая существенная причина использовать один перед другим?

1 Ответ

0 голосов
/ 25 января 2019
<script src="/Scripts/custom.js"></script>

Это относительно корня вашего сайта.Ожидается, что файл custom.js будет находиться в каталоге Scripts в корне вашего сайта, например: example.com/Scripts/custom.js

<script src="~/Scripts/custom.js"></script>

Это относительный виртуальный корень.Если ваш сайт размещен как виртуальное приложение в IIS (дочернее приложение), то он гарантирует, что ищет файл custom.js в корне вашего виртуального приложения, а не в корнеродительский сайт.Таким образом, даже если ваш сайт размещен на example.com/yoursite, ~/Scripts/custom.js будет искать example.com/yoursite/Scripts/custom.js вместо example.com/Scripts/custom.js.

@Scripts.Render("~/Scripts/custom.js")

Этот файл будет найден в том же месте, что и <script src="~/Scripts/custom.js"></script>,но использует Razor HTML Helper в качестве сокращения для создания разметки HTML.

...