Как использовать рендеринг на стороне сервера для добавления мета-тегов og в реаги? - PullRequest
0 голосов
/ 09 октября 2018

Мне нужно динамически изменить содержимое og: title в index.blade.php с помощью экспресс-сервера.Как вы знаете, единственный способ изменить содержимое тегов - использовать рендеринг на стороне сервера, поскольку Facebook не может читать теги og, если они добавлены компонентом реагирующего шлема.Итак, вот что я сделал:

В index.balde.php я добавил следующие строки:

<meta property="og:title" content="$OG_TITLE">
<meta property="og:description" content="$OG_DESCRIPTION">

Затем я создал файл server.js для динамического изменения содержимого тегов.через сервер:

var express = require('express');
var app = express();
const path = require('path');
const fs = require('fs')

app.get('/profile', function(request, response) {
  console.log("Entered the logic");
  const filePath = path.resolve(__dirname, '../views', 'index.blade.php');

  // read in the index.html file
  fs.readFile(filePath, 'utf8', function (err,data) {
    if (err) {
      return console.log(err);
    }
    let result = null;
    // replace the special strings with server generated strings
    data = data.replace(/\$OG_TITLE/g, 'PROFILE TITLE');
    result = data.replace(/\$OG_DESCRIPTION/g, "PROFILE DESCRIPTIONS");
    //result = data.replace(/\$OG_IMAGE/g, 'https://i.imgur.com/V7irMl8.png');
    response.send(result);
  });
});
app.listen(5000, function(){
  console.log('listening on *:' + 5000);
});

В результате, когда я открываю www.testurl.com:5000/profile, содержимое тегов было успешно изменено, но моя проблема заключается в том, как сделать содержимоетеги изменились без необходимости добавлять номер порта в URL, так как запрашиваемая ссылка должна быть без номера порта.Пользователю не нужно добавлять номер порта в URL.В любом случае есть ли в реагировать / экспресс, чтобы сервер знал, что при вызове пользователя www.testurl.com/profile должен вызываться весь прослушиватель событий на сервере через порт 500 (в противном случае, когда доступ к URL-адресу без номера порта app.get ('/ профиль', ...) должен называться)?Или есть способ вызвать URL с номером порта в базовый компонент, чтобы событие происходило каждый раз, когда пользователь открывает какую-либо страницу внутри приложения?

Мне действительно нужна помощь, так как я потратил много временичтобы найти решение.Спасибо.

...