Не получается строка запроса, если конечный параметр sla sh отсутствует при развертывании - PullRequest
1 голос
/ 16 января 2020

Мне нужно прочитать параметры запроса из URL в моем приложении Gridsome . У меня есть 2 случая URL, в одном из которых мой ключ query становится пустым объектом {} при доступе с помощью this.$route.query в моем приложении.

случай 1: https://app.com/forms/ads/?param1=one&param2=two - Перед началом запроса есть / sla sh.

case 2: https://app.com/forms/ads?param1=one&param2=two - Нет / sla sh непосредственно перед параметрами запроса.

Когда я получаю доступ к this.$route.query на моем localhost, оба эти случая дают мне значения param1 и param2.

Моя проблема заключается в том, что я нажимаю case 2 возвращает пустой объект {}.

storeUtmData() {
  const utmSource = this.$route.query.utm_source;
  const utmMedium = this.$route.query.utm_medium;
  console.log(this.$route.query); // return {}
  ...
},

1 Ответ

0 голосов
/ 26 января 2020

case1 запрашивает в «index. html» в папке «https://app.com/forms/ads/», в то время как для case2 на веб-странице stati c Обслуживаемый ресурс не будет существовать, когда вы создадите свой проект с скучный для производства (если у вас нет действительно специальной инфраструктуры). Поскольку ресурс не существует, я предполагаю, что vue -раутер, к которому вы обращаетесь с помощью "this. $ Route", содержит только пустой объект с этим case2.

Почему он работает локально?

Я могу представить себе локально в среде разработчика express обрабатывает ресурс "ads" как маршрут, в то время как в прямом эфире есть только папка, содержащая и индексирующая. html, которая обслуживается веб-сервером. Разница между маршрутом и папкой, которая статически обслуживается веб-сервером, заключается в том, что маршрут из приложения nodejs express фактически напрямую запускает логи приложения c, в то время как веб-сервер в основном передает данные *. 1031 * файлов в папке. По соглашению доступ к папке осуществляется с sla sh в конце в URL.

Для получения дополнительной информации, пожалуйста, прочитайте следующие разделы: https://en.wikipedia.org/wiki/Clean_URL#Structure https://en.wikipedia.org/wiki/Clean_URL#Implementation

Надеюсь, это ответит на ваш вопрос.

Зачем вам нужен case2 для работы в производстве? Как вы можете установить ссылку на определенный URL, по крайней мере, в вашем приложении.

Ура, электронная почта

...