es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

NGINX: Cómo redireccionar de img/file.jpg a public/img/file.jpg

Tengo una configuración de Nginx como esta:

server{
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /var/www/all-my-projects;

location / {
    try_files $uri $uri/ =404;
    autoindex on;
    autoindex_localtime on;
    autoindex_exact_size off;
}

location ~ .php$ {
    fastcgi_pass $php_fastcgi_pass;
    fastcgi_index /index.php;
    include fastcgi_params;
    fastcgi_split_path_info ^(.+?.php)(/.*)$;
    try_files $fastcgi_script_name =404;
    if (!-f $document_root$fastcgi_script_name) {
        return 404;
    }
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

location /project {
    try_files $uri @store-deprecated;
}
location @project {
    rewrite /project/(.*)$ /project/public/index.php?url=/$1 last;
}
}

Pero cuando accedo a localhost/project, las imágenes en el navegador no se cargan en ninguna vista.
Sé que cuando accedo a la carpeta project, se redirige a project/public/index.php y se ejecuta el sitio.

He puesto las imágenes en el HTML de la siguiente manera:

<img src="img/image.png">

¿Cómo puedo reescribir la carpeta public/img/ para acceder a todas las imágenes escribiendo localhost/project/img/image.png?

Lo mismo ocurre con las carpetas css y js, y con el archivo favicon.ico.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para reescribir la carpeta public/img/ para localhost/project/img/image.png, css, js y favicon.ico, agregue los siguientes bloques de ubicación al archivo de configuración de nginx:

    location /project/img/ {
        alias /var/www/all-my-projects/project/public/img/;
    }
    
    location /project/css/ {
        alias /var/www/all-my-projects/project/public/css/;
    }
    
    location /project/js/ {
        alias /var/www/all-my-projects/project/public/js/;
    }
    
    location /project/favicon.ico {
        alias /var/www/all-my-projects/project/public/favicon.ico;
    }
    

    Ahora puedes acceder a los archivos de imágenes, css, js y favicon.ico escribiendo localhost/project/img/image.png, localhost/project/css/styles.css, localhost/project/js/app.js y localhost/project/favicon.ico, respectivamente.

Comments are closed.