Maison  >  Questions et réponses  >  le corps du texte

À propos de la configuration de nginx pour obtenir des ressources statiques

Par exemple, pour un projet local, le numéro de port doit être 127.0.0.1 : après avoir démarré le service, il est accessible de cette manière. Ensuite, j'ai créé un nouveau fichier 'a.xxxx.com.conf' sous le dossier vhosts. de nginx. Après avoir configuré ici, mon projet local est accessible via a.xxxx.com.

Le problème maintenant est qu'il existe un répertoire pour stocker les fichiers statiques dans le projet, alors que puis-je faire pour accéder aux fichiers statiques ? Je suis novice, j'espère que quelqu'un pourra me dire comment le résoudre ou publier du code pour référence.

Par exemple, je souhaite obtenir le fichier js dans le répertoire javascript sous le Web. Actuellement, je peux l'obtenir en configurant a.xxxx.com.conf sous vhosts. Comme suit :
emplacement ~*/javascript/{

root /Users/xxx/WebstormProjects/myprojects/web/javascript

}

Mais la façon dont je veux y parvenir est en fait la suivante. Par exemple, je souhaite obtenir des ressources sur le Web via img.xxx.com/javascript/a.js.

Merci. Jetez un œil à l'image ci-dessous en fonction de ce que j'ai décrit.

習慣沉默習慣沉默2713 Il y a quelques jours526

répondre à tous(3)je répondrai

  • ringa_lee

    ringa_lee2017-05-16 17:18:17

    Pourquoi personne n'a répondu ?
    Je ne comprends pas très bien, dites-moi un peu ce que je comprends

    location /img {
        root /www/abc 
    }

    Cela signifie que lorsque vous visitez a.xxxx.com/img, une recherche dans /www/abc équivaut à la photo prise sous /www/abc/img
    Désolé pour le manque de détails, c'est pour référence seulement

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 17:18:17

    Votre posture elle-même n’est pas tout à fait correcte. Pensez-vous que lorsque vous visitez une URL, vous souhaitez non seulement qu'il accède à votre service, mais également qu'il accède à vos fichiers statiques. Peut-être direz-vous que l'URL de mon service est différente de l'URL du fichier statique. Le problème est là, pour le serveur WEB, comment fait-il la différence ? En quoi l'URL de votre service est-elle différente de l'URL des ressources statiques ? Si cela dit quelque chose de différent, ce sont les règles de votre fichier de configuration.

    Habituellement, dans les programmes dynamiques, les gens fixent les règles comme ceci :

    Option 1

    • Veuillez d'abord essayer de voir si cette URL est un fichier ou un dossier. Si tel est le cas, veuillez renvoyer la ressource statique

    • .
    • Sinon, veuillez laisser au programme dynamique (service) le soin de gérer

    Le fichier de configuration correspondant peut ressembler à ceci :

    server {
        listen 80;
        server_name a.xxx.com;
        index index.shtml index.html index.php;
        root /Users/xxx/WebstormProjects/myprojects/web/;
        location / {
            try_files $uri $uri/ /index.php$is_args$args;
        }
        location ~ \.php$ {
            root /Users/xxx/WebstromProjects/myprojects/server/;
            fastcgi_pass  127.0.0.1:9001;
            fastcgi_index index.php;
            include fastcgi.conf;
        }
    }

    À ce stade, le répertoire principal est généralement défini sur : /Users/xxx/WebstormProjects/myprojects/web/ Et placez un index.php dans le répertoire Web comme entrée du service. Index.php peut définir le répertoire du programme de l'application sur le serveur. (Cela prend tellement de temps pour supprimer la racine de la section de configuration php)

    Option 2

    Comme mentionné ci-dessus, le répertoire principal est le répertoire de service, mais nous avons des règles selon lesquelles les répertoires tels que javascript, css, images, téléchargements, etc. sont stockés dans le répertoire Web. Par conséquent, nous définissons l'accès au début de ces chemins. pour pointer le répertoire vers le répertoire Web.

    server {
        listen 80;
        server_name a.xxx.com;
        index index.html index.shtml index.php;
        root /Users/xxx/WebstromProjects/myproject/server;
        location / {
           // server
        }
        location ~ /(javascript|css|images) {
            root /Users/xxx/WebstromProjects/myproject/web;
        }
    }

    Donnez quelques idées, mais cela se résume à une chose : réfléchissez d'abord à vos règles d'accès, à ce que sont les URL, puis configurez-les en conséquence.

    répondre
    0
  • 巴扎黑

    巴扎黑2017-05-16 17:18:17

    Afin de répondre à votre question, j'ai spécialement créé un compte

    emplacement /c/ {

      alias /a/

    }

    Si vous accédez au site http://location/c, vous accéderez aux informations du site sous le répertoire /a/.

    répondre
    0
  • Annulerrépondre