Я создаю веб-компонент, используя собственную реализацию, в которой html-шаблон имеет ссылки на изображения. Однако эти ссылки работают только в том случае, если они являются абсолютными или относительно основного документа, что означает, что этот компонент не может использоваться повторно или переноситься. Кроме того, это очень противоречиво.
В настоящее время я добавляю атрибут data-url_prefix ко всем элементам, которые должны использовать изображения. Затем, создав теневой корень для моего настраиваемого элемента, я заменил {{URL_PREFIX}} на значение этого аргумента.
Мое решение кажется очень плохим. Я был бы очень рад, если бы вы посоветовали что-то лучшее, спасибо.
Я нашел интересную цитату на странице http://webcomponents.org/polyfills/html-imports/:
POLYFILL ПРИМЕЧАНИЯ
В импортированных документах, атрибутах href и src в HTML и URL-адресе свойства в файлах CSS, относятся к местоположению импортированных документ, а не основной документ.
почему полифилл использует разную логику, чтобы нативная реализация?
Веб-компоненты В идеале должны инкапсулировать все их зависимости, но если веб-компонент требует изображения, он должен знать абсолютный URL-адрес этого изображения, что не позволяет просто перемещать компонент в структуре файла.
Скажем, например, у меня есть следующая структура:
- index.html
- CSS
- main.css
- JS
- main.js
- web_components
- cool_web_component
- cool_web_component.html
- icon.png
- cool_web_component
Если я изменил его на следующее:
- index.html
- CSS
- main.css
- JS
- main.js
- cool_web_component
- cool_web_component.html
- icon.png
Мне нужно будет изменить указатель на icon.png где-нибудь в этих файлах Мой вопрос - как избежать этого, или решить его элегантным способом. Кроме того, почему фактическая нативная реализация находится в конфликте с полиполками?