Asset (CSS, Javascript, Bilder oder Schriften)
ab Version 5.1
Assets sind Dateien wie CSS, Javascript, Bilder oder Schriften. Diese sollten nicht über den tatsächlichen Dateipfad aufgerufen werden, sondern über ein öffentliches Verzeichnis an den Browser ausgeliefert werden.
Assets für ein Plugin definieren
Alle Assets für ein Plugin sollten in der asset.json
definiert werden.
{
"my/plugin" : [
// asset from path my/plugin/css/button.css
"./css/button.css",
// all files from path my/plugin/js
"./js/*.*",
// all files with the extension .png from folder my/plugin/images
"./images/*.png",
// all files and folders from folder my/plugin/images
"./images/*/*.*",
// assets not from this plugin
"plugin/remote/web_component/font_awesome/css/font-awesome.min.css",
"plugin/remote/web_component/font_awesome/fonts/*.*"
],
// additional assets for some other plugin
"some/other": [
// all images from my/plugin
"public/remote/my/plugin/images/*/*.*"
]
}
Assets verwenden
Das definierte Asset können Sie mit dem Template-Helper asset
verwenden. Dieser liefert eine URL zum Asset im Asset-Ordner.
view.hbs
// href from link
<link rel="stylesheet" href="{{asset "my/plugin" "css/style.css" }}" type="text/css">
// image
<img src="{{asset "my/plugin" "images/logo.png"}}" />
CSS und Javascript
Diese Dateien werden pro Plugin gesammelt und mit jeweils einer Datei ausgeliefert. CSS wird dabei unter css/style.css
zusammengeführt und Javascript unter js/script.js
.
Cache
Die Assets werden unter temp/cache/assets
abgelegt. Dieser Ordner dient als öffentliches Verzeichnis für das Web. Die Logik für das Sammeln der Assets wird dabei nur einmal pro Cache-Generierung ausgeführt, was dazu führt, dass für neue Assets der Cache geleert werden muss.