Tengo un sitio web que utiliza Vue.js y un foro en Discourse. Estoy intentando insertar un script de JavaScript en el archivo de plantilla que conecte los comentarios del foro con una página específica del sitio Vue.js, pero obtengo el siguiente error:
Las plantillas solo deben ser responsables de mapear el estado a la interfaz de usuario.
Evite colocar etiquetas con efectos secundarios en sus plantillas, como <script>,
ya que no serán analizadas.
Intenté cambiar text/javascript por application/javascript, pero al intentar renderizarlo, recibo el siguiente error:
- expresión inválida: falta ) después de la lista de argumentos en
" \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\"\n\n Expresión sin procesar: 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 })();
Según entiendo, el uso de archivos JS en Vue.js solo está permitido desde el dominio desde el cual se realiza la llamada. Mi foro está configurado en un subdominio.
¿Cómo puedo solucionar este error? ¿Quizás debería intentar usar una parte diferente del código?