Un site Next.js pour héberger une galerie d'art à l'aide de feuilles de calcul Google et Google Drive comme backend.
Le projet peut être alimenté en utilisant une feuille de calcul Google qui est visible publiquement. Le site de démonstration de ce projet est alimenté par la feuille Google ici. Vous pouvez configurer un document similaire et le rendre "lisible" par tout le monde avec le lien.
L'exemple de document utilise des images du Web (disponible gratuitement sur pexels.com). Mais, vous pouvez utiliser un Google Drive pour télécharger les images. Vous pouvez ensuite utiliser un CDN comme Cloudinary pour servir automatiquement les images de Google Drive. Ou téléchargez les images sur votre serveur Web dans le répertoire à partir de l'endroit où vous servez le site "construit".
Pour configurer votre site, copiez le fichier env.local.default
sur .env.local
et modifiez-le pour pointer vers votre feuille de calcul Google et votre CDN, si vous en utilisez un.
Vous pouvez soit utiliser un service gratuit comme OpenSheet.vercel.app pour convertir la feuille de calcul en un point final JSON, soit utiliser le script scripts/download-images
pour télécharger les métadonnées comme fichier JSON sur public/metadata.json
. Vous devez supprimer la configuration METADATA_URL
à partir du fichier .env.local
si vous avec le fichier metadata.json
de votre répertoire public/
répertoire.
Définissez IMAGE_CDN_PREFIX=""
Si vous utilisez des images téléchargées localement sur votre serveur. Configurez les miniatures dans le document des métadonnées afin que vos images se trouvent à l'emplacement - ${IMAGE_CDN_PREFIX}/image/${thumbnail}
. Vous pouvez utiliser un ../
préfixe sur vos miniatures, si les miniatures ne vivent pas dans un répertoire image
.
Supprimez également la configuration FORCE_CDN
, si vous souhaitez ne pas utiliser CDN lors du développement localement.
Avec des versions plus récentes de NodeJS (18+?), Si vous rencontrez l'erreur suivante:
opensslErrorStack: [ ' error:03000086:digital envelope routines::initialization error ' ],
library: ' digital envelope routines ' ,
reason: ' unsupported ' ,
code: ' ERR_OSSL_EVP_UNSUPPORTED '
Vous pouvez définir le NODE_OPTIONS
Env Var pour permettre au fournisseur d'OpenSSL hérité.
export NODE_OPTIONS=--openssl-legacy-provider
yarn build
construit le site. Et yarn export
exporterait le site vers un site statique.
Voir Exemple de déploiement de scripts dans les scripts/
répertoire pour voir comment déployer ce site. Vous pouvez voir un site de démonstration ici.