You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Astro vous propose plusieurs façons d'utiliser les images sur votre site, qu'elles soient stockées localement dans votre projet, liées à une URL externe, ou gérées dans un CMS ou un CDN !
Il existe plusieurs [intégrations d'images communautaires](https://astro.build/integrations?search=images) tierces pour optimiser et travailler avec des images dans votre projet Astro.
747
-
748
-
## Mise à jour vers la v3.0 à partir de la v2.x
749
-
750
-
`astro:assets` n'est plus derrière un drapeau expérimental dans Astro v3.0.
751
-
752
-
`<Image />` est maintenant un composant intégré et l'intégration précédente `@astrojs/image` a été supprimée.
753
-
754
-
Ces changements, ainsi que d'autres changements liés à l'utilisation des images dans Astro, peuvent entraîner des ruptures lorsque vous mettez à jour votre projet Astro à partir d'une version antérieure.
755
-
756
-
Veuillez suivre les instructions ci-dessous pour mettre à jour un projet Astro v2.x vers la version 3.0.
757
-
758
-
### Mise à jour à partir de `experimental.assets`
759
-
760
-
Si vous aviez précédemment activé le drapeau expérimental pour `astro:assets`, vous devrez mettre à jour votre projet pour Astro v3.0 qui inclut maintenant les fonctionnalités des assets par défaut.
761
-
762
-
#### Supprimer l'indicateur `experimental.assets
763
-
764
-
Supprime le drapeau expérimental :
765
-
766
-
```js title="astro.config.mjs" del={4-6}
767
-
import { defineConfig } from'astro/config';
768
-
769
-
exportdefaultdefineConfig({
770
-
experimental: {
771
-
assets:true
772
-
}
773
-
});
774
-
```
775
-
776
-
Si nécessaire, mettez également à jour votre fichier `src/env.d.ts` pour remplacer la référence `astro/client-image` par `astro/client` :
777
-
778
-
```ts title="src/env.d.ts" del={1} ins={2}
779
-
/// <referencetypes="astro/client-image" />
780
-
/// <referencetypes="astro/client" />
781
-
```
782
-
783
-
#### Supprimer l'alias d'importation `~/assets`
784
-
785
-
Cet alias d'importation n'est plus inclus par défaut avec `astro:assets`. Si vous utilisiez cet alias avec des actifs expérimentaux, vous devez les convertir en chemins de fichiers relatifs, ou [créer vos propres alias d'importation](/fr/guides/imports/#alias).
#### Ajout d'un support simple pour Cloudflare, Deno, Vercel Edge et Netlify Edge
795
-
796
-
Astro v3.0 permet à `astro:assets` de fonctionner sans erreur dans Cloudflare, Deno, Vercel Edge et Netlify Edge, qui ne supportent pas l'optimisation d'image Squoosh et Sharp intégrée à Astro. Notez qu'Astro n'effectue aucune transformation ou traitement d'image dans ces environnements. Cependant, vous pouvez toujours profiter des autres avantages de l'utilisation de `astro:assets`, y compris l'absence de décalage cumulatif de la mise en page (CLS), l'attribut `alt` imposé, et une expérience de création cohérente.
797
-
798
-
Si vous évitiez auparavant d'utiliser `astro:assets` à cause de ces contraintes, vous pouvez maintenant le faire sans problème. Vous pouvez configurer le service d'images no-op pour qu'il accepte explicitement ce comportement :
799
-
800
-
```js title="astro.config.mjs" ins={4-8}
801
-
import { defineConfig } from'astro/config';
802
-
803
-
exportdefaultdefineConfig({
804
-
image: {
805
-
service: {
806
-
entrypoint:'astro/assets/services/noop'
807
-
}
808
-
}
809
-
});
810
-
```
811
-
812
-
### Décidez où stocker votre images
813
-
814
-
Consultez le guide Images pour vous aider à décider [où stocker vos images](#où-stocker-les-images).Vous pouvez souhaiter profiter des nouvelles options pour stocker vos images avec la flexibilité ajoutée `astro:assets` brings. Par exemple, les images relatives de votre projet `src/` peuvent maintenant être référencées dans Markdown, MDX et Markdoc en utilisant la syntaxe Markdown standard ``.
815
-
816
-
### Mise à jour des balises `<img>` existantes
817
-
818
-
Auparavant, l'importation d'une image renvoyait une simple chaîne de caractères contenant le chemin de l'image. Désormais, les images importées correspondent à la signature suivante :
819
-
820
-
```ts
821
-
interfaceImageMetadata {
822
-
src:string;
823
-
width:number;
824
-
height:number;
825
-
format:string;
826
-
}
827
-
```
828
-
829
-
Vous devez mettre à jour l'attribut `src` de toutes les balises `<img>` existantes (y compris toutes les [images dans les composants du cadre de l'interface utilisateur](#images-dans-les-composants-framework-ui)) et vous pouvez également mettre à jour d'autres attributs qui sont maintenant disponibles pour vous à partir de l'image importée.
<img src={rocket} width="250" height="250" alt="Une fusée dans l'espace." />
836
-
837
-
<img src={rocket.src} width={rocket.width} height={rocket.height} alt="Une fusée dans l'espace." />
838
-
```
839
-
840
-
### Mettez à jour vos fichiers Markdown, MDX et Markdoc
841
-
842
-
Les images relatives de votre projet `src/` peuvent maintenant être référencées dans Markdown, MDX et Markdoc en utilisant la syntaxe Markdown standard ``.
843
-
844
-
Cela vous permet de déplacer vos images du répertoire `public/` vers votre projet `src/` où elles seront traitées et optimisées. Vos images existantes dans `public/` et les images distantes sont toujours valides mais ne sont pas optimisées par le processus de construction d'Astro.
<!-- Les images locales sont désormais possibles! -->
850
-

851
-
852
-
<!-- Gardez vos images à côté de votre contenu ! -->
853
-

854
-
```
855
-
856
-
Si vous souhaitez avoir plus de contrôle sur les attributs de vos images, nous vous recommandons d'utiliser le format de fichier `.mdx`, qui vous permet d'inclure le composant `<Image />` d'Astro ou une balise JSX `<img />` en plus de la syntaxe Markdown. Utilisez l'[intégration MDX](/fr/guides/integrations-guide/mdx/) pour ajouter la prise en charge de MDX à Astro.
857
-
858
-
### Supprimer `@astrojs/image`
859
-
860
-
861
-
Si vous utilisiez l'intégration d'images dans Astro v2.x, suivez les étapes suivantes :
862
-
863
-
<Steps>
864
-
1. Supprimez l'intégration `@astrojs/image`.
865
-
866
-
Vous devez [supprimer l'intégration](/fr/guides/integrations-guide/#supprimer-une-intégration) en la désinstallant puis en la supprimant de votre fichier `astro.config.mjs`.
867
-
868
-
```js del={3,7}
869
-
// astro.config.mjs
870
-
import { defineConfig } from'astro/config';
871
-
importimagefrom'@astrojs/image';
872
-
873
-
exportdefaultdefineConfig({
874
-
integrations: [
875
-
image(),
876
-
]
877
-
})
878
-
```
879
-
880
-
2. Mettre à jour les types (si nécessaire)
881
-
882
-
Si vous aviez des types spéciaux configurés pour `@astrojs/image` dans `src/env.d.ts`, vous pouvez avoir besoin de les changer pour les types Astro par défaut si votre mise à jour vers la v3 n'a pas effectué cette étape pour vous.
883
-
884
-
```ts title="src/env.d.ts" del={1} ins={2}
885
-
/// <reference types="@astrojs/image/client" />
886
-
/// <reference types="astro/client" />
887
-
```
888
-
889
-
De même, mettez à jour `tsconfig.json` si nécessaire :
890
-
891
-
```json title="tsconfig.json" del={3} ins={4}
892
-
{
893
-
"compilerOptions": {
894
-
"types": ["@astrojs/image/client"]
895
-
"types": ["astro/client"]
896
-
}
897
-
}
898
-
```
899
-
900
-
3. Migrer tous les composants `<Image />` existants
901
-
902
-
Changez toutes les instructions `import` de `@astrojs/image/components` à `astro:assets` afin d'utiliser le nouveau composant intégré `<Image />`.
903
-
904
-
Supprimez tous les attributs du composant qui ne sont pas des [propriétés d'image actuellement supportées](/fr/guides/images/#propriétés).
905
-
906
-
Par exemple, `aspectRatio` n'est plus supporté, car il est maintenant automatiquement déduit des attributs `width` et `height`.
import { Image } from '@astrojs/image/components';
911
-
import { Image } from 'astro:assets';
912
-
import localImage from '../assets/logo.png';
913
-
const localAlt = 'The Astro Logo';
914
-
---
915
-
916
-
<Image
917
-
src={localImage}
918
-
width={300}
919
-
aspectRatio="16:9"
920
-
alt={localAlt}
921
-
/>
922
-
```
923
-
924
-
4. Choisir un service d'images par défaut
925
-
926
-
[Sharp](https://github.com/lovell/sharp) est maintenant le service d'image par défaut utilisé pour `astro:assets`. Si vous souhaitez utiliser Sharp, aucune configuration n'est nécessaire.
927
-
928
-
Si vous préférez utiliser [Squoosh](https://github.com/GoogleChromeLabs/squoosh) pour transformer vos images, mettez à jour votre configuration avec l'option `image.service` suivante :
### Mise à jour des schémas des collections de contenu
942
-
943
-
Vous pouvez maintenant déclarer une image associée à une entrée de collection de contenu, telle que l'image de couverture d'un article de blog, dans votre frontmatter en utilisant son chemin relatif au dossier courant.
944
-
945
-
La nouvelle aide `image` pour les collections de contenu vous permet de valider les métadonnées de l'image en utilisant Zod. En savoir plus sur [comment utiliser les images dans les collections de contenus](/fr/guides/images/#images-dans-les-collections-de-contenus)
946
-
947
-
### Naviguer dans les importations d'images dans Astro v3.0
948
-
949
-
Dans Astro v3.0, si vous devez conserver l'ancien comportement d'importation des images et exiger une représentation sous forme de chaîne de l'URL de l'image, ajoutez `?url` à la fin du chemin de l'image lorsque vous l'importez. Par exemple :
950
-
951
-
```astro title="src/pages/blog/MyImages.astro"
952
-
---
953
-
import Sprite from '../assets/logo.svg?url';
954
-
---
955
-
956
-
<svg>
957
-
<use xlink:href={Sprite + '#cart'} />
958
-
</svg>
959
-
960
-
```
961
-
962
-
Cette approche permet d'obtenir la chaîne d'URL. Gardez à l'esprit que pendant le développement, Astro utilise un chemin `src/`, mais lors de la construction, il génère des chemins hachés comme `/_astro/cat.a6737dd3.png`.
963
-
964
-
Si vous préférez travailler directement avec l'objet image lui-même, vous pouvez accéder à la propriété `.src`. Cette approche est la meilleure pour des tâches telles que la gestion des dimensions des images pour les métriques de Core Web Vitals et la prévention de CLS.
965
-
966
-
Si vous êtes en train de passer au nouveau comportement d'importation, la combinaison des méthodes `?url` et `.src` peut être la bonne méthode pour une gestion transparente des images.
745
+
Il existe plusieurs [intégrations d'images communautaires](https://astro.build/integrations?search=images) pour optimiser et travailler avec des images dans votre projet Astro.
0 commit comments