Статические файлы не найдены в Mezzanine

Я пытаюсь установить новый шаблон на свой веб-сайт Mezzanine. Мой Mezzanine имеет версию 4.2.2, а Django — версию 1.9.7. Вот что я сделал:

С

DEBUG = true

Я создал новое приложение под названием «template_app» и загрузил его в settings.py:

INSTALLED_APPS = (
    "template_app",
    ...
)

Я создал структуру каталогов и скопировал мезонинные файлы по умолчанию (база, индекс...), например:

template_app
    static
        css
        img
        js
    templates
        base.html
        index.html
        includes
            footer_scripts.html

Я скачал загрузочный шаблон и заменил указанную выше папку css js img и index.html теми, которые были найдены в шаблоне. (Шаблон, который я использовал: https://startbootstrap.com/template-overviews/business-casual/ ) Затем свяжите css и javascript в base.html:

(Все CSS)

{% compress css %}
<link rel="stylesheet" href="{% static "css/bootstrap.css" %}">
<link rel="stylesheet" href="{% static "css/bootstrap.min.css" %}">
<link rel="stylesheet" href="{% static "css/business-casual.css" %}">
<link rel="stylesheet" href="{% static "css/mezzanine.css" %}">
<link rel="stylesheet" href="{% static "css/bootstrap-theme.css" %}">

(Все JS)

{% compress js %}
<script src="{% static "mezzanine/js/"|add:settings.JQUERY_FILENAME %}"></script>
<script src="{% static "js/bootstrap.js" %}"></script>
<script src="{% static "js/bootstrap.min.js" %}"></script>
<script src="{% static "js/jquery.js" %}"></script>
<script src="{% static "js/bootstrap-extras.js" %}"></script>

Я не уверен, где я сделал неправильно, или что мне не хватает. Мой веб-сайт не может найти файл css и javascript в приложении:

Not Found: /css/bootstrap.min.css/
Not Found: /css/business-casual.css/
[07/Jan/2017 08:12:30] "GET /css/bootstrap.min.css/ HTTP/1.1" 404 1716
[07/Jan/2017 08:12:30] "GET /css/business-casual.css/ HTTP/1.1" 404 1720
Not Found: /js/jquery.js/
...

Я попытался изменить urls.py и другие части settings.py на основе других решений, но, похоже, они не работают. Что я делаю не так?

-- добавлено 09.01.2017 --

Проверка с помощью findstatic связала меня с правильным путем. За исключением bootstrap.css, который связал меня как с файлом css в моем загруженном шаблоне, так и с мезонинным шаблоном.


person Eric Yeh    schedule 07.01.2017    source источник
comment
Покажите свои STATIC_ROOT и STATIC_URL.   -  person Dmitrii Mikhailov    schedule 08.01.2017
comment
@DmitriiMikhailov В режиме DEBUG я не думал, что STATIC_ROOT имеет значение.   -  person Ryne Everett    schedule 08.01.2017
comment
@RyneEverett да, вы правы, по умолчанию он должен просматривать статическую папку. Затем я бы предложил проверить шаблоны URL для обслуживания статических файлов docs.djangoproject.com/en/1.10/howto/static-files/   -  person Dmitrii Mikhailov    schedule 08.01.2017
comment
@DmitriiMikhailov my STATIC_URL = '/static/' добавление статических файлов к URL-адресам у меня не работает   -  person Eric Yeh    schedule 09.01.2017
comment
@EricYeh Я думаю, что тогда URL-адрес вашего файла bootstrap.css должен содержать «/ static /».   -  person Dmitrii Mikhailov    schedule 10.01.2017


Ответы (3)


У меня была та же проблема со статическими файлами, но для этого требовалось установить параметр «STATIC_ROOT», поскольку мои пути были неправильными.

Поскольку я использовал пользовательскую тему, мне пришлось изменить путь «STATIC_ROOT» в settings.py, чтобы он указывал на статические файлы моего приложения, а не на PROJECT_ROOT по умолчанию.

Поэтому я добавил что-то вроде этого...

## Custom Theme Path (For Static Files)
THEME_URL = "template_app/"

И изменил "STATIC_ROOT" на...

STATIC_URL = "/static/"
STATIC_ROOT = os.path.join(PROJECT_ROOT, THEME_URL, STATIC_URL.strip("/"))
person BugZap    schedule 05.09.2017

Убедитесь, что вы снова перезапустили тестовый сервер (вручную, если это необходимо), автозапуск не распознает изменения в каталогах static/.

person Michel    schedule 07.02.2017

Я нашел этот вопрос в Google, когда искал решение той же проблемы. Мне удалось обойти эти шаги:

  • Прежде всего, дважды проверьте, что template_app указано в списке INSTALLED_APPS над всеми приложениями Mezzanine;
  • Перезапустите findstatic;
  • Если вы все еще не нашли его, запустите collectstatic. В то время как findstatic не нашел тему, которую я хотел (но нашел другие темы), collectstatic удалось найти ее и связать ее статические файлы.
person Ramon Melo    schedule 27.02.2017