Как правильно создать такие профили пользователей, как facebook.com/USERNAMEHERE? В настоящее время я использую domain.com/users.html?USERNAMEHERE - PullRequest
0 голосов
/ 15 ноября 2018

Я ищу URL для каждого имени пользователя. Однако единственный способ, которым я понял, как это сделать - это использовать поисковые запросы (знаки вопроса). Например, в Node.js я получаю тег 'location.search', который возвращает все, что находится после '?' в www.domain.com/users.html?USERNAME. Тем не менее, я хотел бы иметь его, где я могу использовать www.domain.com/users/USERNAME.

Я использую Firebase и Node.js

1 Ответ

0 голосов
/ 15 ноября 2018

Это зависит от того, как вы генерируете контент.

Несколько методов, которые приходят на ум:

  • получение имени пользователя из URL в node.js
  • с использованием перезаписей на хостинге Firebase

Метод 1:

Если вы используете какой-либо вид серверной визуализации, вы можете просто получить имя пользователя из URL-адреса и динамически обслуживать контент. Экспресс пример:

app.get('/user/:username', function(req , res){
  res.send("This is the profile for: " + req.params.username);
});

Метод 2:

Если вы предоставляете один и тот же HTML-файл для каждого пользователя и заполняете его пользовательскими данными на клиенте, вы можете использовать перезаписи в конфигурации хостинга Firebase:

{
  "hosting": {
    "rewrites": [
      {
        "source": "/user/*",
        "destination": "/user/index.html"
      }
    ]
  }
}

Это переписывает domain.com/user/username/ в domain.com/user/index.html.

Примечание: не переписывает domain.com/user/username/otherpage/. Для этого вам нужно будет добавить переписать:

{
  "source": "/user/*/otherpage/",
  "destination": "/path/to/otherpage/"
}

Примечание. Если вы используете этот метод, обратите внимание на 404 ошибки, если вы ссылаетесь на ресурсы, используя относительные пути. Например, представьте, что это HTML-файл в / user /:

<!-- inside of /user/index.html -->
<script src="javascript.js"></script>

Этот путь будет /users/username/javascript.js и может возвращать index.html, что является проблемой. Чтобы исправить это, используйте абсолютный путь:

<!-- inside of /user/index.html -->
<script src="/user/javascript.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...