В чем разница между путями, начинающимися с '/' и '~ /'

Я видел этот вопрос, но он отвечает на другой вопрос.

Сегодня у меня возникла странная (по крайней мере, для меня) проблема. Проблема в том, что у меня есть этот код на моем сайте ...

<link rel = "icon" type = "image/png" sizes = "16x16" href = "~/img/TT_favicon_16px.png" />

Фавикон был возвращен почти на всех страницах сайта, но не на одной из страниц сайта.

Я просто придумал (из ничего) убрать знак тильды, и он начал работать на всех страницах сайта.

<link rel = "icon" type = "image/png" sizes = "16x16" href = "/img/TT_favicon_16px.png" />

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

Используете ли вы какие-либо мета-теги в своем HTML-коде страниц, где значок не работает и где он работает?

nl-x 07.09.2018 09:50
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
1
231
1

Ответы 1

Это контекстно.

Допустим, URL-адрес текущей страницы - http://example.com/foo/bar.html.

Абсолютные ссылки пути, начинающиеся с косой черты, например /quux/grault.html, заменяют весь путь, оставляя сервер в покое: http://example.com/quux/grault.html.

Ссылки относительного пути, не начинающиеся с косой черты, например fred/baz.html, будут добавляться к последней косой черте пути: http://example.com/foo/fred/baz.html.

Что касается HTTP и его интерпретации, в вашей тильде нет ничего особенного. Это не полный URL-адрес, и он не начинается с косой черты, поэтому это URL-адрес относительного пути, и в нашем примере вы получите этот URL-адрес: http://example.com/foo/~/img/TT_favicon_16px.png. Когда вы удаляете тильду, она становится ссылкой абсолютного пути, и вы получаете http://example.com/~/img/TT_favicon_16px.png.

Когда вы переходите по этим двум ссылкам, то, что будет обслуживаться, зависит от конфигурации вашего веб-сервера. Я никогда не пробовал использовать такую ​​ссылку, как http://example.com/~/... или http://example.com/foo/~/..., но сомневаюсь, что она сработает - большинство веб-серверов не настроены для ответа на такой URL-адрес (и действительно, на моем компьютере я получаю 404 Not Found). Невозможно сказать, почему вы получили ответ, не проверив, как настроен ваш веб-сервер.

Спасибо за объяснение, но чего я не могу понять, так это разрешения знака тильды в теге <link>. Я знаю, что .Net переводит это в корень приложения, но с тегом <link>, как он переводится, или это Visual Studio или сама .Net, которая здесь творит чудеса?

Naveed Butt 07.09.2018 09:33

«Когда вы удаляете тильду, она становится ссылкой абсолютного пути, и вы получаете http://example.com/~/img/TT_favicon_16px.png». ... На самом деле, если он удаляет тильду, он не получает URL-адрес с тильдой в нем. Он просто получает http://example.com/img/TT_favicon_16px.png

nl-x 07.09.2018 09:44

Другие вопросы по теме