Je voudrais créer un div avec une image d'arrière-plan CSS: maintenant, je ne peux pas utiliser les itinéraires dans CSS, de sorte que je dois utiliser un chemin relatif ou mon application se brisera si elle est installée sur un chemin non-racine. P> existe-t-il un moyen autour de cela? Quelque chose comme p> j'ai trouvé Ce fil d'ici il y a une année qui affirme qu'il est impossible. Est-ce toujours le cas? P>
4 Réponses :
Le chemin va toujours de votre feuille de style. Alors pourquoi n'utilisez-vous pas des chemins relatifs? p>
Exemple, votre CSS est dans mais peut-être moindre.css a quelque chose de similiaire que vous recherchez. P> / Public / CSS / CODE>, votre chemin dans votre fichier CSS doit donc être ../ images code>. C'est tout. P>
Merci. Je me suis toujours demandé si l'URL du chemin dans CSS passe de l'index ou du fichier CSS.
Le chemin autour / est / possible.
Le problème est que les fichiers CSS sont statiques, alors jouez! Ne fait rien sur eux - sauf les servir aux clients. p>
Il suffit de rendre vos fichiers CSS en vues, écrivez un contrôleur générique qui prend le nom de fichier comme paramètre et il sera servi de jeu! Modèles. P>
Quelque chose dans les lignes de (Méfiez-vous: pseudocode!): P>
route: p> contrôleur p> puis dans votre CSS, vous pouvez utiliser n'importe quelle fonctionnalité de modèle groovy que vous voulez.
Le chemin d'installation est disponible sous forme http.path dans la conf < / p> Ce sera très inefficace cependant, vous devrez donc ajouter NGinx ou un fronton similaire pour faire la mise en cache et définir des valeurs d'expiration élevées pour ces fichiers. P> Je ne sais pas si c'est Vaut la peine de le faire juste pour éviter les chemins relatifs em>! P> Je pense certainement que le chemin relatif est mieux adapté au déploiement générique et que vous êtes plus susceptible de briser les choses avec cette approche absolue dynamique. P> ANOTHE Point important est que si vous le faites comme des URL absolues, il n'y a pas de problème.
En fait, je fais aussi. P> mais quand je déploierai mes applications Web (soyez-leur de jouer !, Django, pure WSGI ou autre chose) J'ai toujours mis un fronton Web. P> généralement nginx . P> Cela signifie que votre cadre de lecture sera un serveur en amont et vous pouvez faire tout ce que vous voulez avec les URL sur votre port: 80 - et gérez plusieurs services avec des sous-domaines ou des sous-dossiers ... P > Mais lorsque vous accédez à votre application de lecture sur son propre port (s) tout sera absolu. P> Enfin, si vous déployez une lecture! En tant que guerre, j'aurais le sentiment que vous avez choisi le mauvais cadre ou le mauvais modèle de déploiement! Mais alors votre JBoss ou quel que soit autre serveur d'applications fera de la magie sur les sous-dossiers ... p> p> Une meilleure stratégie de déploiement globale H2>
@ RIpper234 Ahah Désolé, je l'envisimait de manière générique de montrer toutes les situations possibles, pas de sens qui a été votre modèle de déploiement!
@ user1187534 - Vous avez besoin d'un serveur d'applications, sinon vous n'en avez pas besoin, car il n'apporte pas beaucoup de valeur ajoutée et que le jeu comprend déjà le même serveur Web. Aussi, jouer! 2 Ne travaille pas actuellement sur un serveur d'applications Java.
Jetez un coup d'œil au fichier CONF / IATTES. P>
y, vous trouverez ce qui suit quelque chose comme p>
Carte des ressources statiques du dossier / dossier public sur le chemin URL / actif Obtenir / des actifs / * File Controlers.Assets.AT (chemin = "/ public", fichier) p>
ce qui signifie pour accéder aux ressources dans le dossier public, vous utiliseriez / des actifs dans votre URL. P>
donc dans votre CSS que vous faites URL (/assets/images/myimage.png) et cela fonctionnera. P>
Les fichiers CSS ne sont pas analysés, mais sont plutôt servis statiquement. Si votre application est déployée dans un sous-dossier ("http.path" dans application.conf), votre chemin proposé ne fonctionnera tout simplement pas.
Oui, les fichiers CSS sont servis statiquement. Mais tant que vous configurez les routres.conf correctement et utilisez l'URL correspondante dans votre CSS, les images doivent être servies correctement.
Et c'est exactement comment j'utilise l'image de fond: URL ("...") dans les fichiers CSS de mon projet
Contrôleur d'actifs est à ma connaissance, uniquement disponible dans la lecture 2.0 (et nous sommes Parler de la lecture 1.2. * Ici) ...
Étant donné que le framework de lecture compile tous les fichiers de / public, j'ai utilisé l'instruction suivante dans le CSS pour accéder à des images d'arrière-plan.
background: url("/assets/images/my-image-background.jpg");
Quel est le problème avec les chemins relatifs?
@Pekka - Les chemins relatifs (comme dans '../images/foo.png') sont fragiles. Ils peuvent casser si vous modifiez la route vers cette page. Cela pourrait même être une configuration externe, par ex. Un frontend Apache agissant comme un proxy inverse, avec mod-réécrire. Un chemin "absolu" est plus robuste (c'est "relative" dans votre dossier d'application, mais la page rendue contient un chemin absolu).
"Ils peuvent casser si vous modifiez la route vers cette page" Non si vous avez une feuille de style distincte - Les chemins relatifs des feuilles de style sont toujours relatifs à la feuille de style, ce qui ne devrait pas changer qui i> souvent , devrait-il?