5 votes

Nginx 404 pour les fichiers css js

Je ne peux pas charger les fichiers css et js sur mon MAC. J'obtiens 404 pour ces fichiers. Sur Ubuntu, dans nginx.conf, j'ajoute simplement à la fin du fichier rewrite ^/assets/([a-z\-]+)-([a-z0-9]+).(css|js) /assets/$1.$3; et ça marche.

Mais je ne sais pas où le mettre sur osx parce que quand je l'ai écrit comme sur Ubuntu j'obtiens la syntaxe err....

mon fichier de configuration nginx ressemble à :

worker_processes  auto;

pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    access_log  logs/access.log;
    error_log  logs/error.log;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  default;

        location / {
            root   html;
            index  index.html index.htm;

        }

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

        # HTTPS server
        server {
                server_name     local.beer.co.uk;
                listen  80;
                return  301     https://$host$request_uri;
        }

   server {
    listen                     443 ssl;
    server_name                local.beer.co.uk local.beer.telegraph.co.uk;

    ssl_protocols              TLSv1 TLSv1.1 TLSv1.2;
    ssl_certificate            /usr/local/etc/nginx/cert.pem;
    ssl_certificate_key        /usr/local/etc/nginx/cert.key;

    gzip_disable "msie6";
    gzip_types text/plain application/xml application/x-javascript text/css application/json text/javascript;

    access_log  /usr/local/var/log/nginx/access.log;
    error_log   /usr/local/var/log/nginx/error.log debug;
    log_not_found off;
    root    /Users/RobDee/workspace/beer;

    location /.htpasswd
    {
        return 403;
    }
    location ~ \.css {
        root /Users/RobDee/workspace/beer/web;
        expires max;
    }

    location ~* \.(jpg|jpeg|png|gif|ico|js|woff|woff2|ttf)$ {
        root /Users/RobDee/workspace/beer/web;
        access_log off;
        expires max;
    }

    location ~* \.(js|css)$ {
        expires 1y;
        log_not_found off;

    }

    location /
    {
        root /Users/RobDee/workspace/beer/web;
        try_files $uri $uri/ /app_dev.php$is_args$args;
         index app_dev.php;
    }

    location ~ \.php$ {
        root /Users/RobDee/workspace/beer/web;
        fastcgi_pass   127.0.0.1:9003;
        fastcgi_index  app_dev.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    }
    include servers/*;

    }

2voto

Pothi Kalimuthu Points 5514

directive de réécriture ne peut être utilisé que dans le contexte d'un serveur, d'un emplacement ou d'un bloc "si". Par exemple, il ne peut pas être utilisé dans le bloc "http". Vous devez l'utiliser dans le bloc "event" ou le bloc "http" (avec d'autres blocs serveur). Veuillez voir où j'ai utilisé la directive de réécriture.

worker_processes  auto;

pid        logs/nginx.pid;

events {
worker_connections  1024;

}

http {
    include       mime.types;
    default_type  application/octet-stream;

    access_log  logs/access.log;
    error_log  logs/error.log;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  default;

        location / {
            root   html;
            index  index.html index.htm;
        }

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    # HTTPS server
    server {
        server_name     local.beer.co.uk;
        listen  80;
        return  301     https://$host$request_uri;
    }

    server {
        listen                     443 ssl;
        server_name                local.beer.co.uk local.beer.telegraph.co.uk;

        ssl_protocols              TLSv1 TLSv1.1 TLSv1.2;
        ssl_certificate            /usr/local/etc/nginx/cert.pem;
        ssl_certificate_key        /usr/local/etc/nginx/cert.key;

        gzip_disable "msie6";
        gzip_types text/plain application/xml application/x-javascript text/css application/json text/javascript;

        access_log  /usr/local/var/log/nginx/access.log;
        error_log   /usr/local/var/log/nginx/error.log debug;
        log_not_found off;
        root    /Users/RobDee/workspace/beer;

        location /.htpasswd
        {
            return 403;
        }
        location ~ \.css {
            root /Users/RobDee/workspace/beer/web;
            expires max;
        }

        location ~* \.(jpg|jpeg|png|gif|ico|js|woff|woff2|ttf)$ {
            root /Users/RobDee/workspace/beer/web;
            access_log off;
            expires max;
        }

        location ~* \.(js|css)$ {
            expires 1y;
            log_not_found off;
        }

        location /
        {
            root /Users/RobDee/workspace/beer/web;
            try_files $uri $uri/ /app_dev.php$is_args$args;
            index app_dev.php;
        }

        location ~ \.php$ {
            root /Users/RobDee/workspace/beer/web;
            fastcgi_pass   127.0.0.1:9003;
            fastcgi_index  app_dev.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

        rewrite ^/assets/([a-z\-]+)-([a-z0-9]+).(css|js) /assets/$1.$3;

    }

    include servers/*;
}

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X