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

#javascript #python #html #django

#javascript #python #HTML #django

Вопрос:

Я работаю над веб-приложением для отображения сведений на электронных платах на основе базы данных. У меня есть два способа отображения результатов поиска :

  • Первый способ — щелкнуть по доске, и вы перейдете на страницу сведений (чтобы у этой страницы был свой URL-адрес, и я мог передать его кому-то другому)
  • Второй способ — сравнить несколько плат, и детали отображаются на той же странице (прямо под досками, которые я выбрал для сравнения)

Оба способа отображают одну и ту же HTML-страницу с именем «details.html »

Вот моя проблема: чтобы заставить первый способ работать, я использовал {% extends «base.html » %} и я создал блок в последнем, поэтому у меня все еще есть все меню (которые находятся в «base.html «файл), доступный на странице сведений. первый способ

Однако, чтобы второй способ работал, я хотел бы поместить html «details.html » в div, чтобы он отображался на той же странице. Но из-за {% extends …%} все меню из «base.html » также отображаются… (что кажется логичным, потому что я сделал так, чтобы она отображалась для первого способа работы.)

Я понятия не имею, как это исправить (кроме как иметь 2 отдельные HTML-страницы) или как изменить его, чтобы он также работал, зная, что мне действительно нужны два способа работы, и я не могу изменить эти способы отображения.

У вас есть какие-нибудь идеи?

Ответ №1:

Используйте {% include %} тег шаблона (doc). Это позволит вам использовать общий фрагмент html из двух разных шаблонов.

Вы можете комбинировать оба {% extends %} и {% include %} теги по мере необходимости.

В качестве альтернативы, можно выполнить композицию на стороне клиента с помощью небольшого количества JavaScript, запроса AJAX / Fetch и <iframe> тега. В некоторых случаях может быть желательным рендеринг на стороне клиента, поскольку он обеспечивает лучшую изоляцию рендеринга, поэтому сценарии и стили более чистые и надежные. Но недостатком также является то, что рендеринг в iframe полностью изолирован, поэтому создание сценариев и стилизация между страницами могут стать сложнее, если вам нужно сделать больше, чем просто отображение содержимого.

Ответ №2:

Возможно, я неправильно понял, но я думаю, вы спрашиваете о отображении содержимого другой веб-страницы на веб-странице?

Вы могли бы использовать модальный для отображения содержимого веб-страницы внутри него.

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