Tenho um site que usa Vue.js e um fórum no Discourse. Estou tentando inserir um script JavaScript no arquivo de template que conecte os comentários do fórum a uma página específica do site Vue.js, mas estou recebendo o erro:
Templates devem ser responsáveis apenas por mapear o estado para a UI.
Evite colocar tags com efeitos colaterais em seus templates, como <script>,
pois elas não serão analisadas.
Tentei alterar text/javascript para application/javascript, mas ao tentar renderizar, recebo o seguinte erro:
- expressão inválida: falta ')' após a lista de argumentos em
" \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"
Expressão bruta: 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 })();
Pelo que entendi, o uso de arquivos JS no Vue.js é permitido apenas a partir do domínio de onde a chamada se origina. E meu fórum está configurado em um subdomínio.
Como posso corrigir esse erro? Talvez eu deva tentar usar outra parte do código?