L’ID è specificato nella pagina del componente e la console registra l’ID corretto. Tuttavia, non sembra aggiornare alcun URL.
Ho aggiunto questo epn-smart-tools.js come eccezione alla policy di sicurezza dei contenuti. Nella console del browser, tuttavia, ricevo questo avviso:
Sembra che questo “from-url.js.map” a cui si fa riferimento in epn-smart-tools.js sia il problema. Ho scritto un semplice file html sul mio desktop e l’ho eseguito localmente e non sembra esserci alcun problema, il che mi porta a credere che sia più un problema lato discourse che dal mio browser.
Cosa fanno queste source map e come discourse interagisce con esse sono al di fuori dei limiti della mia conoscenza. Qualche consiglio? Sto trascurando qualcosa?
Le source map sono file opzionali che aiutano nel debug di asset minificati. Poiché non controlli questo asset e non hai alcun controllo sulla sua origine, dovresti ignorare questo avviso.
Grazie per le informazioni @Falco e buon compleanno.
Ho capito che il problema era dove ho aggiunto quella riga <script src="....
Questo ha funzionato per me:
<script type="text/discourse-plugin" version="0.8">
console.log(settings.epn_id);
window._epn = {campaign: settings.epn_id, smartPopover:false};
var script = document.createElement('script');
script.src = 'https://epnt.ebay.com/static/epn-smart-tools.js';
var head = document.getElementsByTagName("head")[0];
head.appendChild(script);
</script>
Il problema successivo che ho riscontrato è che agli elementi caricati dinamicamente non viene applicato lo script. Ad esempio, se aggiorno la pagina su un argomento, i post che vengono caricati avranno il link di affiliazione ma scorrendo per rivelare altri post, quelli non li avranno.
C’è un modo per eseguire lo script ogni volta che viene caricato un nuovo elemento?
Idealmente, faresti ciò sul lato server, una volta salvato un nuovo post. Abbiamo un plugin che fa esattamente questo per Amazon, quindi dovresti essere in grado di adattarlo per eBay: GitHub - discourse/discourse-affiliate