Sto creando un componente Web utilizzando l'implementazione nativa, che nel suo modello html ha collegamenti alle immagini. Tuttavia, questi collegamenti funzionano solo se sono assoluti, o relativi al documento principale, il che significa che quel componente non è riutilizzabile o portabile. Inoltre, è molto controintuitivo.I percorsi nei componenti Web sono relativi alla radice
Attualmente, aggiungo un attributo data-url_prefix a tutti gli elementi che devono utilizzare le immagini. Quindi, quando creo una radice shadow per il mio elemento personalizzato, sostituisco un {{URL_PREFIX}} con il valore di tale argomento.
La mia soluzione sembra molto male. Sarei molto felice se tu consigli qualcosa di meglio, grazie.
ho trovato una citazione interessante sulla pagina http://webcomponents.org/polyfills/html-imports/:
POLYFILL NOTE
In documenti importati, href e src attributi in HTML, e l'URL immobili a file CSS, sono relative alla posizione del documento importato , non al documento principale.
perché un polifill usa una logica diversa dall'implementazione nativa?
Web Components Idealmente dovrebbe incapsulare tutte le loro dipendenze, ma se un componente web richiede un'immagine, dovrebbe conoscere l'URL assoluto a quella immagine, che non permette il componente da semplicemente spostato nella struttura del file.
Diciamo, per esempio ho la seguente struttura:
- index.html
- css
- main.css
- js
- main.js
- web_components
- cool_web_component
- cool_web_component.html
- icon.png
- cool_web_component
se cambio al seguente:
- index.html
- css
- principale.css
- js
- main.js
- cool_web_component
- cool_web_component.html
- icon.png
Mi sarebbe richiesto di cambiare il puntatore a icon.png da qualche parte in quei file La mia domanda è come evitarlo o risolverlo in modo elegante. Inoltre, perché l'effettiva implementazione nativa è in conflitto con i polyfill?
puoi spiegarti meglio? vuoi dire se hai struttura root-> some_folder-> immagine e il tuo php è root-> athor_folder-> php_file.php vuoi aggiungere in php_file.php un tag img per fare riferimento ad un'immagine dalla cartella immagine? – Laurentiu
@Laurentiu, controlla la mia modifica, spero che chiarisca la tua non comprensione. –
potresti usare una cartella di immagini come la tua js, e ogni volta che il tuo percorso absolut è uguale, questo significa che nel tuo html non avrai mai bisogno di usare il percorso relativo e il tuo componente è portatile. Probabilmente POLYFILL fa qualcosa come riscrivere css in symfony, anche in symfony usa il percorso relativo alla tua immagine e dopo che le risorse symfony lo convertono nel percorso di abolizione della tua cartella radice. Non sono esperto in POLYFILL, ma spero che questo sia utile. – Laurentiu