как включить / static / css URL enable в django - PullRequest
1 голос
/ 07 марта 2012

Когда я использую MEDIA_URL или STATIC_URL, чтобы указать на / static / в настоящее время установить MEDIA_URL на / static / и использовать его в пути к файлу CSS, например:

<link rel="stylesheet" type="text/css" href="{{MEDIA_URL}}css/css.css" />

Он указывает на /static/css.css, нопри попытке http://localhost/static/css.css выдает ошибку 404.

У меня есть в настройках:

.....
MEDIA_ROOT = ''
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
MEDIA_URL = '/static/'

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = 'D:/programming/django_projects/ecomstore/'
.....

В urls.py я имею в виду статические, как это:

url(r'^static/(?P<path>.*)$', 'django.views.static.serve',
     {'document_root':'D:/programming/django_projects/ecomstore/'}

Такгде проблема?Почему это показывает 404, мне нужно создать некоторое представление для статических файлов?Или что-то еще не так в моих настройках или urls.py?Любой ответ будет оценен, так как я новичок в Django.

заранее спасибо

1 Ответ

6 голосов
/ 07 марта 2012

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

Вот некоторые вещи, на которые стоит обратить внимание:

  1. MEDIA_URL и MEDIA_ROOT предназначены для загрузки пользователем (FileField с и ImageField с на ваших моделях). Это должна быть собственная папка; "СМИ" распространено.

  2. STATIC_URL и STATIC_ROOT для ваших статических ресурсов. Это также должна быть его собственная папка; "статический" является общим.

  3. Делать не на самом деле положить что-либо в STATIC_ROOT. Этот каталог предназначен только для вывода управляющей команды collectstatic в рабочем состоянии.

  4. Ваши статические ресурсы должны находиться в «статической» папке вашего приложения или в совершенно новом и другом каталоге (т.е. не MEDIA_ROOT или STATIC_ROOT). Затем вы добавляете путь к этому каталогу в STATICFILES_DIRS.

  5. Не добавляйте ничего в urls.py. В процессе разработки Django будет автоматически обслуживать что угодно в «статических» каталогах ваших приложений или в любом каталоге STATICFILES_DIRS. В производстве ваш веб-сервер будет отвечать за обслуживание этих файлов.

...