Статические ресурсы не могут быть загружены, что? неправильно в этой настройке Nginx?

В контейнере Docker с PHP71-FPM и Nginx у меня есть следующие настройки для Nginx:

server {
    listen      80  default_server;
    listen      81  default_server http2 proxy_protocol; ## Needed when behind HAProxy with SSL termination + HTTP/2 support
    listen      443 default_server ssl http2;

    ssl_certificate       /etc/nginx/ssl/dummy.crt;
    ssl_certificate_key   /etc/nginx/ssl/dummy.key;

    root        /data/www/demos/jqgrid;
    index       index.php index.html index.htm;

    location ~ \.php$ {
      include         fastcgi_params;
      fastcgi_pass    php-upstream;
    }

    include     /etc/nginx/conf.d/stub-status.conf;
    include     /etc/nginx/conf.d/default-*.conf;
}

При доступе к http: // localhost отображается индекс , но без стилей или загруженного файла JS. Я не могу найти, что препятствует доступу к статическим файлам.

Вот результат выполнения команды ls -la на хосте (помните, что это контейнер Docker, на котором запущены PHP-FPM и Nginx ):

$ ls -la ~/dev/
total 96
drwxrwxr-x  11     80     80 4096 Dec 15 14:36 .
drwx------. 40 rperez rperez 4096 Dec 15 15:01 ..
drwxr-xr-x   5     80     80 4096 Mar 13  2015 css
drwxr-xr-x   7     80     80 4096 Aug  5  2015 demos
drwxr-xr-x   6     80     80 4096 Mar 26  2015 js
drwxr-xr-x   2     80     80 4096 Mar 27  2015 northwindSQL
drwxr-xr-x   4     80     80 4096 Mar 16  2015 php

Разрешения исходят от Docker (для меня это странно, но я открыл еще одну запись здесь для этого)

Эти файлы взяты из моего репозитория, а эти взяты из репозитория, где FROM входит в Dockerfile .

Могу я получить помощь с этим?

Обновление

Как @Michael предложил, я проверил Nginx регистрируется в контейнере, и я вижу следующее:

php71-fpm-nginx | 2016-12-15 20:02:40,483 DEBG 'nginx' stderr output:
php71-fpm-nginx | 2016/12/15 20:02:40 [error] 33#33: *46 open() "/data/www/demos/jqgrid/css/jquery-ui.css" failed (2: No such file or directory), client: 172.20.0.1, server: , request: "GET /css/jquery-ui.css HTTP/1.1", host: "localhost:8080", referrer: "http://localhost:8080/index.php"
php71-fpm-nginx | 
php71-fpm-nginx | 2016-12-15 20:02:40,830 DEBG 'nginx' stderr output:
php71-fpm-nginx | 2016/12/15 20:02:40 [error] 33#33: *46 open() "/data/www/demos/jqgrid/css/control_icon.png" failed (2: No such file or directory), client: 172.20.0.1, server: , request: "GET /css/control_icon.png HTTP/1.1", host: "localhost:8080", referrer: "http://localhost:8080/index.php"
php71-fpm-nginx | 

Но как это может быть возможно, если код говорит об обратном?

<script src="../../js/jquery.min.js" type="text/javascript"></script>
<script src="../../js/jquery-ui.min.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="../../css/jquery-ui.css" media="screen" />
0
задан 23 May 2017 в 15:41
1 ответ

Ваше приложение разработано таким образом, что корень вашего документа должен быть:

root / data / www / demos / jqgrid;

А затем вы получите доступ к приложению с URL http://www.example.com/demos/jqgrid . Почему это было разработано таким образом, вы должны спросить людей, которые это сделали.

0
ответ дан 5 December 2019 в 09:05

Теги

Похожие вопросы