2013-03-26 4 views
1

Я разрабатываю сайт Django, и после серии изменений я снова запускал свой сервер, когда вдруг - нет css! Конечно, сервер по-прежнему отображает html-сайт, но css по всему сайту бросает ошибку 404. Моя статические файлы информация в моем settings.py не редактировались вообще:Django: GET css возвращает 404?

import os 
# hack to accommodate Windows 
CURRENT_PATH = os.path.abspath(os.path.dirname(__file__).decode('utf-8')).replace('\\', '/') 

STATIC_URL = '/static/' 

# Additional locations of static files 
STATICFILES_DIRS = (
    os.path.join(CURRENT_PATH, 'static'), 
) 

Моего базовый шаблон делает простой вызов для файла, основанного на статическом файл каталог:

<link rel="Stylesheet" type="text/css" href="{{ STATIC_URL }}css.css" /> 

И, наконец, конечно , вот быстрый распад моей соответствующей структуры каталогов, так как я подозреваю, что ошибка какая-то вопрос каталога:

-project- 
    settings.py 
    -static- 
     css.css 
    -templates- 
     base.html 
     index.html 

Я только при условии, что местоположение индекса .html, но папка шаблонов, конечно, заполнена каталогами для различных шаблонов/страниц.

Я буду держать этот вопрос обновленным с информацией, поскольку я устраняю/получаю ответы.

+0

Как выглядят ваши URL-адреса CSS? Используете ли вы сервер dev или что-то еще? – wRAR

+1

Вы установили переменную DEBUG в значение False? – PepperoniPizza

+0

Я просто использую оболочку devserver, поэтому, когда я вызываю localhost: 8000, который возвращает мой индекс, css-url и сопровождающая ошибка просто '/css.css/ HTTP/1.1" 404'. Следующий уровень вниз, который дает немного больше подробностей, хотя это '/category/earrings/css.css HTTP/1.1" '. Этот второй уровень происходит от «category.html», расположенного в его собственном каталоге в каталоге шаблонов. – fildred13

ответ

1

Чтобы получить статические URL-адреса на платформе разработки, вам нужно сделать несколько вещей.

Для этого я бы рекомендовал просмотреть и прочитать эту ссылку. https://docs.djangoproject.com/en/dev/howto/static-files/

Как и вам, вам также необходимо вернуть контекст запроса из вашего представления.

Обратите внимание, что в вашем файле urls.py вам также потребуется добавить строку.

urlpatterns += staticfiles_urlpatterns() 

Эта строка позволяет модулю URL-адреса на сервере разработки обслуживать статические файлы.

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

Вы должны быть в состоянии использовать:

# Additional locations of static files 
STATICFILES_DIRS = (
    os.path.join('static'), 
) 

Примечание: Кроме того, убедитесь, что ваши взгляды возвращающийся контекст запроса, как это требуется для переменной STATIC_URL заселяться. Кроме того, убедитесь, что вы имеете все TEMPLATE_CONTEXT_PROCESSORS добавлены в settings.py файл

+0

Я сейчас просмотрю эту ссылку вместе с вашей другой информацией, но я должен указать, что статические файлы работали просто несколько часов назад, но что-то странное произошло во время моего редактирования того, что я THOUGHT был полностью несвязанным материалом из статического пути к файлу. Кроме того, мои 'urlpatterns' служат с использованием этого кода:' url (r '^ static/(? P . *) $', 'Django.views.static.serve', {'document_root': 'C:/Users/Sean/Dropbox/Веб-сайт/ecomstore/ecomstore/static '}), ' – fildred13

+0

Проехали ли вы непосредственно к местоположению файла css? Это может быть сообщение об ошибке. Я также хотел бы посмотреть на удаление os.path.join в пределах settings.py и использовать полный путь к окну, чтобы это исключить. Наконец, я также хотел бы проверить, что ваше представление возвращает контекст запроса, поскольку это необходимо для заполнения объекта статического URL-адреса. –

+0

Я использую переменную в своем STATICFILES_DIRS, чтобы при развертывании мне не пришлось обновлять эту или любые другие переменные на этом пути. Разве ваше решение и мое решение по-разному не достигают той же цели? Или я чего-то не хватает? – fildred13

0

Решение:

{% load static from staticfiles %} 
<link rel="Stylesheet" type="text/css" href="{% static "css.css" %}"/> 

Это правильный путь для вызова статических файлов на Django 1.7.

+0

Django 1.7 не был выпущен, когда был задан этот вопрос, проверьте дату. Тем не менее, это вполне может быть правильным способом вызвать статические файлы в версии 1.7, но даже тогда он не позволяет удаленно решить проблему, которую вы можете увидеть в комментариях первого ответа, которые объясняют, что это был испорченный процессор контекста. – fildred13

Смежные вопросы