In HU GO - Как читать параметры запроса в шаблоне - PullRequest
0 голосов
/ 19 июня 2020

У меня есть шаблон hu go, и я даю гиперссылку с одной страницы на другую. Я хотел бы передать некоторые параметры запроса в URL-адрес и прочитать их в шаблоне.

/list-page/?{{(querify "somekey" "value")}}

я хочу проверить /list-page/, если в URL-адресе есть ?somekey=value. если есть, я хотел бы отфильтровать список в соответствии с переданным параметром. Если нет, я покажу весь список. Если непонятно, могу попытаться объяснить подробнее. Я пробовал {{ $value := (.Get "value") }}, но это тормозит. это вообще не работает. Я использую Hugo Static Site Generator v0.55.6 Любая помощь приветствуется.

1 Ответ

2 голосов
/ 21 июня 2020

?key1=value1&key2=value2 - дополнительные параметры, предоставляемые веб-серверу. Эти параметры представляют собой список пар ключ / значение, разделенных символом &. Веб-сервер может использовать эти параметры для дополнительных действий перед возвратом ресурса. Каждый веб-сервер имеет свои собственные правила относительно параметров, и единственный надежный способ узнать, обрабатывает ли конкретный c веб-сервер параметры, - это спросить владельца веб-сервера.

MDN, Более подробное описание URL-адресов

Это означает, что когда HTTP-сервер получает ваш запрос GET /list-page/?somekey=value, он хорошо знает этот специальный суффикс, и в вашем серверном приложении вы можете обслуживают разные ответы в зависимости от этого параметра.

В вашем случае вы используете что-то вроде nginx или Apache httpd для обслуживания вашего stati c HTML файлов, которые вы создали задолго до запроса. Итак, у вас нет реального приложения, которое могло бы проинструктировать его обрабатывать этот запрос по-разному. Он не перенаправляет с /list-page/?somekey=somevalue на /list-page/, поэтому к URL-адресу в вашем браузере по-прежнему прикреплен параметр поиска, но это по-прежнему одна сгенерированная вами страница stati c.

At на этом этапе вы все еще можете использовать JavaScript ( URLSearchParams ) для интерпретации этих параметров и для изменения страницы на месте. Это означает, что вы усложняете свой сайт Hu go, а также увеличиваете нагрузку на клиентов (браузеры). Если вам действительно нужны эти строки запроса и Hu go, это путь к go.

В качестве альтернативы я предлагаю попытаться сгенерировать все возможные варианты /list-page/ и присвоить им имена собственные, например, /list-page/category-1, /list-page/category-1-with-fizz. Это зависит от вашего варианта использования, количества имеющихся у вас страниц и частоты их изменения. Hu go довольно быстро компилирует шаблоны и создает множество страниц, поэтому я бы не стал об этом беспокоиться. Результатом действительно будет то, что у вас будет намного больше файлов на выходе, но именно так это происходит с генераторами сайтов stati c, а обслуживание stati c HTML дешевле, чем фактический сервер приложений, например PHP, NodeJS.

...