Мне нужно динамически изменить содержимое 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 с номером порта в базовый компонент, чтобы событие происходило каждый раз, когда пользователь открывает какую-либо страницу внутри приложения?
Мне действительно нужна помощь, так как я потратил много временичтобы найти решение.Спасибо.