Как связать статические файлы стилей с приложением Django на Apache - PullRequest
0 голосов
/ 22 июня 2019

Я нахожусь в процессе настройки веб-сервера Apache на виртуальной машине Ubuntu с использованием Django с целью его настройки для работы.Я использовал это пошаговое руководство , чтобы запустить Apache и Django, и с тех пор следую официальному учебнику , предоставленному в Django docs * 1006.*.Я получил до Part 6 , в котором обсуждается управление статическими файлами, но я не могу применить стиль.

Сокращенная файловая структура сервера:

/etc/
--apache2/
----apache2.conf
....
/build/
--django/ <-- Django installation
--tstdj/ <-- target project
----manage.py
----polls/
------...
------static/
--------polls
----------styles.css
------templates/
----------....
----------index.html
------urls.py
------views.py
----static/
------....
------polls/
--------styles.css
----tstdj/
------....
------settings.py
------urls.py
------wsgi.py

/ etc / apache2 / apache2.conf:

....
WSGIDaemonProcess www-data processes=2 threads=12 python-path=/build/tstdj
WSGIProcessGroup www-data
WSGIRestrictEmbedded On
WSGILazyInitialization On
WSGIScriptAlias / /build/tstdj/tstdj/wsgi.py

Alias /static/ /build/tstdj/static

<Directory /build/tstdj/tstdj>
    Require all granted
</Directory>
 <Directory /build/tstdj/static>
    Require all granted
</Directory>

<Directory /static>
    Require all granted
</Directory>

/ build / tstdj / tstdj / settings.py:

import os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

....

STATIC_ROOT = BASE_DIR + '/static/'

STATIC_URL = '/static/'

STATICFILES_DIRS = [
        '/build/tstdj/polls/static',
]

#STATIC_DIRS = 'static'

STATICFILES_FINDERS = [
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
]

/ build / tstdj / polls / templates/polls/index.html:

{% load static %}

 <link rel="stylesheet" type="text/css" href="{% static 'polls/styles.css' %}">

 <p><span>My name Jeff</span></p>

 {% if latest_question_list %}
     <ul>
     {% for question in latest_question_list %}
         <li><a href="{% url 'polls:detail' question.id %}">{{ question.        question_text }}</a></li>
     {% endfor %}
     </ul>
 {% else %}
     <p>No polls are available.</p>
 {% endif %}

/ build / tstdj / polls / static / polls / styles.css:

li a {
     color: green;
 }

Очевидно, что в этом случае желаемым результатом являетсяесть зеленые ссылки.Вкладка «Сеть» инспектора показывает 403 ошибки в файле styles.css, как и попытка сразу перейти к localhost:8080/static/.

Я запустил python manage.py collectstatic и sudo service apache2 restart Господь знает, сколько раз.Я знаю, что есть способы заставить работать стили в разработке, но я еще не получил их функциональность для производства.

1 Ответ

0 голосов
/ 22 июня 2019

Моя проблема заключалась в том, что я пытался изменить разрешения в /etc/apache2/apache2.conf, а не /etc/apache2/sites-available/000-default.conf.

Apache 403 при обслуживании статических файлов Django

...