css не загружается в докер с помощью nginix - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь запустить свой проект codeigniter в докере. У меня есть следующая конфигурация приложения в docker-compose.yml (ниже показана только часть приложения)

app:
  build: .
  volumes:
    - .:/var/www/html/codeigniter/
  depends_on:
    - db
  environment:
    - POSTGRES_HOST=db
    - POSTGRES_USER=postgres
    - POSTGRES_PASSWORD=dummy
  ports:
    - 8080:81

in var / www / html / codeigniter / app / nginx / default.conf имеет следующее содержимое (nginx conf)

server {
   listen 81 default_server;
   listen [::]:81 default_server;
   server_name localhost;

   root /var/www/html/codeigniter;
   index index.html index.php;

   location ~* \.(ico|css|js|gif|jpe?g|png)$ {}

   location / {
      try_files $uri $uri/ /index.php$is_args$args;
      include /etc/nginx/mime.types;
   }

   location ~* \.php$ {
      fastcgi_pass app:9000;
      fastcgi_index index.php;
      fastcgi_split_path_info ^(.+\.php)(.*)$;
      include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

  access_log /var/log/nginx/access.log;
  error_log  /var/log/nginx/error.log;
}

во время выполнения команды docker-compose up она загружает проект. Но показывает 404 для файлов CSS и JS. Путь к папке css: / var / www / html / codeigniter / app / css /. Чего мне не хватает?

Структура моей папки

codeigniter
├── app
│   ├── application
│   ├── css
│   ├── img
│   ├── js
│   ├── nginx
│   ├── system
│   ├── user_guide
│   └── vendor
│   └── Dockerfile
│   └── docker-composer.yml

Пожалуйста, помогите. Спасибо

1 Ответ

0 голосов
/ 09 февраля 2019

Я прошел через эту проблему, и не было никакого смысла возиться с конфетой nginx, когда я обнаружил, что мне нужно запустить:

docker stop $(docker ps -a -q)

и

docker rm $(docker ps -a -q)

Чтобы позже увидеть эффекты после изменения conf nginx и затем запустить:

docker-compose up --build

Очистить кеш, куки и историю вашего браузера

Мой файл настроек:

worker_processes  1;  ## Default: 1

worker_rlimit_nofile 8192;

events {
  worker_connections  4096;  ## Default: 1024
}

http {
  include  mime.types;

  index    index.html index.htm index.php;

  default_type application/octet-stream;
  log_format   main '$remote_addr - $remote_user [$time_local]  $status '
    '"$request" $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';

  sendfile     on;
  tcp_nopush   on;
  server_names_hash_bucket_size 128; # this seems to be required for some vhosts



    server {

            listen *:80;
            server_name my.devcom;

            error_log  /var/log/nginx/error.log;
            access_log /var/log/nginx/access.log;

            root /www;
            index index.php;

            location = /favicon.ico {
                            log_not_found off;
                            access_log off;
                    }

            location = /robots.txt {
                            allow all;
                            log_not_found off;
                            access_log off;
                    }

            location / {
                try_files $uri $uri/ /index.php?$args;

            }


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

            # FastCGI 
            location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass php:9000;
                fastcgi_index index.php;
                fastcgi_intercept_errors on;

                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param PATH_INFO $fastcgi_path_info;
            }

            location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
                expires max;
                log_not_found off;
        }


    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...