2013-11-16 3 views
5

Я провел весь день, и ничего не работает. Я видел по крайней мере 20 сообщений здесь по одной и той же теме, и они разные с разными предложениями, и ничто не работает для меня. Запуск Django 1.6 с Python 2.7. + Я пытаюсь загрузить css для приложения polls из учебника django.Статические файлы с Django 1.6

проект макета

Project 
    |-polls 
     |-static 
      |-polls 
       style.css 
    |static 

вот settings.py

STATIC_URL = '/static/' 
STATIC_ROOT = '/home/bri6ko/DjangoProjects/django1.6/PoolsDjangoProject/static' 

код шаблона

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

urls.py

urlpatterns = patterns(...)+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 

опросы/urls.py

urlpatterns = patterns(....,url(r'^static/(?P<path>.*)$', 'django.views.static.serve',          {'document_root': '/home/bri6ko/DjangoProjects/django1.6/PoolsDjangoProject/'}),) 

После запуска: питон manage.py collectstatic, все собрано и статические папка, которая на корню получает соответственно заполняется администратора и опросы папок и файлов.

Я запустить сервер: питон manage.py runserver все работает отлично, кроме CSS не загружен

это то, что я получаю от консоли Chrome, когда я инспектировать HTML-

.... 
<link rel="stylesheet" type="text/css" href="/static/polls/style.css"> 
.... 

который выглядит тонкий, но дает следующий выход

[16/Nov/2013 00:44:41] "GET/HTTP/1.1" 404 2141 
[16/Nov/2013 00:44:45] "GET /polls/ HTTP/1.1" 200 820 
[16/Nov/2013 00:44:45] "GET /static/polls/style.css HTTP/1.1" 404 1649 

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

UPDATE

DEBUG=True 

полный urls.py

from django.conf.urls import patterns, include, url 
from django.contrib.staticfiles.urls import staticfiles_urlpatterns 
from django.contrib import admin 
from PoolsDjangoProject import settings 
from django.conf.urls.static import static 

admin.autodiscover() 

urlpatterns = patterns('', 
# Examples: 
# url(r'^$', 'PoolsDjangoProject.views.home', name='home'), 
# url(r'^blog/', include('blog.urls')), 
url(r'^polls/', include('polls.urls', namespace='polls')), 
url(r'^admin/', include(admin.site.urls)), 
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 

полный опрос/urls.py

из моделей django.conf.urls импорта , url вид импорта

urlpatterns = patterns('', 
        url(r'^$', views.IndexView.as_view(), name='index'), 
        url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'), 
        url(r'^(?P<pk>\d+)/results/$',  views.ResultsView.as_view(),name='results'), 
        url(r'^(?P<poll_id>\d+)/vote/$', 'polls.views.vote', name='votes'), 
        url(r'^static/(?P<path>.*)$', 'django.views.static.serve', 
            {'document_root':  '/home/bri6ko/DjangoProjects/django1.6/PoolsDjangoProject/'}), 
) 

И когда я пытаюсь получить доступ к

http://127.0.0.1:8000/static/polls/style.css 

Я получаю

Page not found (404) 
'polls/style.css' could not be found 
+0

Какое сообщение об ошибке делает Джанго дисплей (в полном объеме), если вы попросите CSS страницы в вашем браузере? –

+0

является 'DEBUG' true или false? –

+0

размещать ваши все URLS файлов - это выглядит, как вы, возможно, пропустили установку обслуживающей статические файлы с devserver – professorDante

ответ

0

Во-первых, это должно быть известно, что Django не несет ответственности за обслуживание статических файлов на производственных серверах. Тем не менее, он обслуживает их, когда DEBUG=True во время разработки для отладки.

Для обслуживания статических файлов, когда debug=true вы должны сделать ничего. Я не знаю, почему это создает путаницу среди новичков в том, как его настроить.Ниже поможет вам создать статические файлы как для производства и Дев режимов ясно

режим развития: когда DEBUG=True

  1. создать свой проект django-admin.py startproject mysite
  2. создать приложение manage.py createapp myapp
  3. Добавить myapp в INSTALLED_APPS в settings.py
  4. myapp dir, создать папку static
  5. В myapp/static директории, сохраните файл myfile.css
  6. В settings.py, действительный адрес для STATIC_ROOT папки для хранения статических файлов. Это может быть что-то вроде os.path.join(os.path.abspath(os.path.dirname(__file__)), "mystatic"), если вы хотите сохранить ваши собранные файлы по адресу mysite/mysite/mystatic.
  7. run manage.py collectstatic; теперь вы должны увидеть статический файл, собранный в указанном выше каталоге. Он также должен создать один, если его нет. Вы можете поместить любой каталог.
  8. test url http://127.0.0.1:8000/static/myfile.css
  9. Если он еще не работает, попробуйте перезагрузить сайт .. Новые файлы не распознаются динамически!
+1

Вам не нужно запускать ' collectstatic' для просмотра статических файлов в dev. –

+0

Я не думаю, что вы выполняли эти команды. Они не все работают. – isaaclw

5

Я столкнулся с этой проблемой. Моя проблема заключалась в том, что у меня не было моего основного приложения в установленных приложениях, в любой папке с wsgi.py, которая должна быть в INSTALLED_APPS.

+0

Это не имело никакого значения в моих попытках решить эту проблему. –

+1

Это сильно повлияло на мои попытки решить эту проблему. спасибо <3 –

+0

Это сработало для меня. Можете ли вы объяснить, почему мы должны добавить основное приложение к INSTALLED_APPS? В учебнике не говорится об этом. – Lobsterman

1

Я тоже боролся с этой проблемой.

Вот как я ее решил (DEBUG=True):

  1. После создания проекта и несколько приложений, я создал папку с именем «статикой», сидевшей рядом с моим приложением каталогов (том же уровень, .manage.py) ,
  2. Я установил мой статический URL для '/static/' в настройках
  3. я установил мой статический корень STATIC_ROOT = os.path.normpath(os.path.join(os.path.dirname(__file__), '../../static/').replace('\\','/')) (BASE_DIR = os.path.dirname(os.path.dirname(__file__)))
  4. Я установил мои staticfiles каталоги на STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"), '/Users/username/sites/containing_dir/project_dir/static/',) (предполагается, что OSX путь)
  5. Я добавил + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) моего URLs. py для моего проекта

Мой статический носитель теперь обслуживается от http://127.0.0.1:8000/static/css/styles.css (при условии, что команда запускает сервер).

Комментарий, если вам нужно дополнительное описание!

+0

Что такое staticfiles_dirs? Почему все ссылаются на него, когда прямой путь - static_root? Похоже, мне пришлось бы переместить файлы из staticfiles_dir в static_root в любом случае. – isaaclw

6

Я нашел, что это необходимо перезапустить сервер работает после выполнения действий в

https://docs.djangoproject.com/en/1.6/intro/tutorial06/#customize-your-app-s-look-and-feel

для того, чтобы забрать вновь созданный статический каталог. Этот шаг не указан в учебнике. Я открыл билет с просьбой о его добавлении.

Я понимаю, что этот ответ вряд ли помогут вашему конкретному случаю, но этот вопрос приходит видное место в Google при поиске проблем с добавлением статического каталога в приложении примера Опросов.

+0

благодарит Шона, это помогло и спасибо за открытие билета. Люди Django помогут тонне людей, проливая свет на это. Django достаточно сложно :-) –

+0

Спасибо, Шон, это действительно помогло мне! –

+0

У меня была такая же проблема, используя учебник 1.8 версии. Все еще не упоминается в руководстве по перезапуску сервера. – Deleet

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