2017-09-08 4 views
0

En essayant d'accélérer mon site de nœud, j'ai configuré le CDN CloudFront d'Amazon pour mettre en cache tous les fichiers statiques de mon serveur. J'ai configuré un alias de sous-domaine donc au lieu d'écrire src = "/ mysite.css", je peux écrire src = "https://cache.mysite.com/mysite.css", et il va chercher le fichier css depuis le nuage, au lieu de mon serveur. Le problème que j'essaie de résoudre est que je ne veux pas coder en dur tous mes fichiers statiques à diriger vers le nuage, parce qu'il sera très difficile de développer et de tester mon site à l'avenir. Si j'apporte une modification localement à un fichier css, par exemple, et que j'essaie de le tester localement, le lien vers le fichier css sera dirigé vers le nuage, pas la copie locale. Donc, j'essayais de penser à un moyen de réécrire les URL, conditionnellement à l'environnement. Existe-t-il un moyen d'utiliser le fichier ENV pour définir une variable, qui sera ensuite utilisé pour insérer l'URL du cache devant toutes les URL relatives, ou sinon laisser vide afin que le lien reste relatif?Activer ou désactiver les chemins d'accès relatifs au cloud en fonction de l'environnement Node.js

+0

Exécuter tout le site par CloudFront et vous pouvez simplement utiliser tous les chemins relatifs. –

+0

J'ai d'abord pensé que je pouvais le faire, mais Node ne fonctionnera pas sur CloudFront. CloudFront ne fournira que des fichiers statiques tels que JS, images, CSS, etc. –

+0

Ce n'est pas correct. Tout site, statique ou dynamique, peut être placé derrière CloudFront. Vous utilisez les modèles de chemin d'accès pour indiquer à CloudFront quels chemins vont vers votre stockage statique (par exemple, S3) et quels chemins vont vers votre serveur d'applications (il exécute toujours le code de nœud pour le site). Mes sites ont des modèles de chemin tels que '* .css' et' * .png' qui passent en statique, puis le modèle par défaut '*' va à l'application, et transmet les cookies et les chaînes de requête. Vous pouvez avoir jusqu'à 25 destinations ("comportements de cache" avec "modèles de chemin") qui vont toutes à des endroits potentiellement différents sur le backend ("origines"), par défaut. –

Répondre

0

Il y a process.env[documentation] pour obtenir la variable d'environnement que vous pouvez ensuite utiliser dans votre code/templates.

Vous pouvez également utiliser des modules comme dotenv ou config