Dans Vaadin 10-14, où dois-je placer mes fichiers statiques, tels que CSS, JavaScript et les modèles Polymer? Et les fichiers statiques tels que les images?
De plus, comment importer ces fichiers dans Vaadin? Y a-t-il une différence entre Vaadin 14 avec npm et Vaadin 10-13 avec bower?
Tous les chemins sont relatifs à la racine du projet, par ex. où se trouve le fichier pom.xml
dans un projet Maven.
JavaScript importé en utilisant @JsModule
Utilise mode strict . Cela signifie entre autres que les variables globales doivent être définies sur l'objet window
, window.x = ...
, Au lieu de simplement x = ...
.
@CssImport("./my-styles/styles.css")
[1]/frontend/my-styles/styles.css
@JsModule("./src/my-script.js")
[1]/frontend/src/my-script.js
new Image("img/flower.jpg", "A flower")
/src/main/webapp/img/flower.jpg
@CssImport("./my-styles/styles.css")
[1]/frontend/my-styles/styles.css
@JsModule("./src/my-script.js")
[1]/frontend/src/my-script.js
new Image("img/flower.jpg", "A flower")
/src/main/resources/META-INF/resources/img/flower.jpg
@CssImport("./my-styles/styles.css")
[1]/src/main/resources/META-INF/resources/frontend/my-styles/styles.css
@JsModule("./src/my-script.js")
[1]/src/main/resources/META-INF/resources/frontend/src/my-script.js
new Image("img/flower.jpg", "A flower")
/src/main/resources/META-INF/resources/img/flower.jpg
@StyleSheet("css/styles.css")
[2]/src/main/webapp/frontend/css/styles.css
@HtmlImport("src/template.html")
/src/main/webapp/frontend/src/template.html
@JavaScript("js/script.js")
[3]/src/main/webapp/frontend/js/script.js
new Image("img/flower.jpg", "A flower")
/src/main/webapp/img/flower.jpg
@StyleSheet("css/styles.css")
[2]/src/main/resources/META-INF/resources/frontend/css/styles.css
@HtmlImport("src/template.html")
/src/main/resources/META-INF/resources/frontend/src/template.html
@JavaScript("js/script.js")
[3]/src/main/resources/META-INF/resources/frontend/js/script.js
new Image("img/flower.jpg", "A flower")
/src/main/resources/META-INF/resources/img/flower.jpg
[1] Les annotations @JsModule
Et @CssImport
Peuvent également être utilisées pour l'importation à partir d'un package npm. Dans ce cas, le chemin d'accès est défini comme @JsModule("@polymer/paper-input")
ou @CssImport("some-package/style.css")
. Les chemins faisant référence au répertoire frontal local doivent être préfixés avec ./
[2] L'annotation @StyleSheet
Peut également être utilisée dans Vaadin 14 avec npm. Les mêmes chemins que dans V10-V13 peuvent être utilisés, y compris le protocole context://
@StyleSheet("context://style.css")
, qui résout le chemin par rapport au chemin de contexte de l'application Web, comme les autres fichiers statiques. Les styles inclus de cette façon peuvent entraîner des problèmes avec les composants Web .
[3] L'annotation @JavaScript
Peut également être utilisée dans Vaadin 14 avec npm. Le dossier V14 /frontend
Doit alors être utilisé ,.
La réponse de @Tazavoo a été ajoutée à la documentation officielle de Vaadin 14:
Aide-mémoire sur les ressources Vaadin 14
Il fait également partie de la documentation Vaadin 15:
Aide-mémoire sur les ressources Vaadin 15
Je voulais juste le mettre ici parce que j'espère que cela restera à jour à l'avenir. Veuillez me pardonner que je ne poste pas les tableaux ici, mais cette réponse se répétera sinon.