Digital Ocean, Django и Nginx не находят все статические файлы - PullRequest
0 голосов
/ 31 мая 2018

Я пробовал много разных вещей, но все найденные решения не помогают.

Я разместил свой корпоративный сайт на сайте digitalocean в Ubuntu 16.04, следуя указаниям digitalocean (которые хорошо работали раньше), но он обслуживает только некоторые статические файлы.

Вот ссылки на изображения.

<h3>Here is the image that doesn't load</h3>

<img src="http://206.189.161.104/static/images/frac_stack_1.jpg" alt="Image that doesn't load">

<h3>Here is the image that does load in the same folder</h3>

<img src="http://206.189.161.104/static/images/coil_pic.jpg" alt="Image that doesn't load" style="width:200px;height:200px;>

Вот мой конфиг nginx:

server {
listen 80;
server_name 206.189.161.104;

location = /favicon.ico { access_log off; log_not_found off; }
location /static {
    root /home/dmckim/myproject;
}

location / {
    include proxy_params;
    proxy_pass http://unix:/home/dmckim/myproject/myproject.sock;
}
}

Я попытался удалить косую черту со статического (как показано выше).Я также попытался изменить корень на псевдоним и добавить статическую папку к пути, но у меня были те же результаты.

Вот код из моего файла settings.py:

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
    '/home/dmckim/myproject/static/',
    '/home/dmckim/myproject/static/images/',
)

Я такжепопробовал очистить collectstatic перед сбором снова, и я всегда запускаю эти команды после и проверяю, очищен ли кеш браузера.

sudo systemctl restart gunicorn
sudo nginx -t && sudo systemctl restart nginx

Мое разрешение для файлов: -rw-rw-r--, для загружаемого изображения иэто не загружается.Я также попробовал много способов изменить разрешения (я не очень понимаю их, но они были предложены в других сообщениях).Я даже опустошил сервер и начал с нуля, чтобы убедиться, что я ничего не испортил с разрешениями.

Я не вижу ничего плохого в журналах процесса nginx или журналах доступа, но журналы ошибок показываютследующее:

2018/05/31 13:04:19 [error] 11481#11481: *22 open() 
"/home/dmckim/myproject/static/images/frac_stack_1.jpg" failed (2: No such 
file or directory), client: 12.184.4.50, server: 206.189.161.104, request: 
"GET /static/images/frac_stack_1.jpg HTTP/1.1", host: "206.189.161.104", 
referrer: "http://206.189.161.104/frac-stacks/"

Журналы Gunicorn показывают 404 для изображений, которые не будут загружаться.

Вот группа www-данных uid=33(www-data) gid=33(www-data) groups=33(www-data)

Здесьмоя группа uid=1000(dmckim) gid=1000(dmckim) groups=1000(dmckim),27(sudo)

1 Ответ

0 голосов
/ 31 мая 2018

Имена файлов чувствительны к регистру.Ваше изображение называется "http://206.189.161.104/static/images/frac_stack_1.JPG" не" http://206.189.161.104/static/images/frac_stack_1.jpg".

<h3>Here is the image that loads</h3>

<img src="http://206.189.161.104/static/images/frac_stack_1.JPG" alt="Image that doesn't load" style="width:200px;height:200px;">

<h3>Here is the other image that does load in the same folder</h3>

<img src="http://206.189.161.104/static/images/coil_pic.jpg" alt="Image that doesn't load" style="width:200px;height:200px;>

Обратите внимание, что ваши результаты могут отличаться при локальном запуске.Windows не чувствительна к регистру, Linux.См. этот вопрос для деталей

...