Commentaires Discourse dans Vuejs

J’ai un site web qui utilise Vue.js et un forum sur Discourse. J’essaie d’insérer du JavaScript dans un fichier de modèle afin de connecter les commentaires du forum à une page spécifique de mon site Vue.js, mais je rencontre l’erreur suivante :

Les modèles ne doivent être responsables que de la liaison de l'état à l'interface utilisateur. Évitez de placer des balises ayant des effets de bord dans vos modèles, comme <script>, car elles ne seront pas analysées.

J’ai essayé de changer text/javascript en application/javascript, mais lorsque j’essaie de le rendre, je reçois l’erreur :

 - expression invalide : parenthèse manquante après la liste des arguments dans

" \n  DiscourseEmbed = { discourseUrl: 'https://forum.epicseven.ru/',\n                     \ndiscourseEmbedUrl: '\"+_s(url absolute=\"true\")+\"' };\n\n  (function() {\n    \nvar d = document.createElement('script'); d.type = \n'application/javascript'; d.async = true;\n    d.src = \nDiscourseEmbed.discourseUrl + 'javascripts/embed.js';\n    \n(document.getElementsByTagName('head')[0] || \ndocument.getElementsByTagName('body')[0]).appendChild(d);\n  })();\n"

  Expression brute : DiscourseEmbed = { discourseUrl: \n'https://forum.epicseven.ru/',\n                 discourseEmbedUrl: '{{url absolute=\"true\"}}' };\n\n  (function() {\n    var d = document.createElement('script'); d.type = \n'application/javascript'; d.async = true;\n    d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';\n    (document.getElementsByTagName('head')[0] || \ndocument.getElementsByTagName('body')[0]).appendChild(d);\n  })();

Si je comprends bien, l’utilisation de fichiers JS dans Vue.js n’est autorisée que depuis le domaine à partir duquel l’appel est effectué. Or, mon forum est configuré sur un sous-domaine.

Comment puis-je corriger cette erreur ? Peut-être devrais-je essayer d’utiliser une autre partie du code ?

The embedding code we provide is meant for static sites, not client side rendered (SPAs) like Vue/React/Ember/Angular.

You will have to look into another method of obtaining the data from Discourse. We do offer a full API but you might have to proxy it through your own server to avoid cross domain requests.

3 « J'aime »

J’ai eu le même problème et après quelques ajustements, voici une solution possible pour les applications monopages : Embed comments from Discourse in your single page app

Ce sujet a été automatiquement fermé 30 jours après la dernière réponse. Les nouvelles réponses ne sont plus autorisées.