2013-02-18 6 views
0

Как 1-миллионный статический файл вопрос о Django 1.3. Я искал и пытался так много всего, но ничего не работает для меня. Любая помощь будет оценена по достоинству. Постарайтесь дать как можно больше информации.Django 1.3 Статические файлы

URL FILE

urlpatterns = patterns('', 
url(r'^projectm/statictest/$','project_management.views.statictest'),) 

VIEW

def statictest(request): 
return render_to_response('statictest.html',locals()) 

ШАБЛОН

<html><head><title>Static Load Test Page</title></head> 
<body> 
{% load static %} 
<img src="{{ STATIC_URL }}testimage.jpg" /> 
</body></html> 

НАСТРОЙКИ

STATIC_ROOT = '/home/baz/framework/mysite/static/' 
STATIC_URL = '/static/' 
STATICFILES_DIRS = ('',) 
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder', 
'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
) 
TEMPLATE_DIRS = (
"/home/baz/framework/mysite/templates" 

ФАЙЛЫ

-bash-3.2$ pwd 
/home/baz/framework/mysite/templates 
statictest.html 

-bash-3.2$ pwd 
/home/baz/framework/mysite/project_management/static 
-bash-3.2$ ls 
testimage.jpg 

не слишком уверен, что если есть какие-либо другие данные, которые были бы полезны. Но в основном, когда я иду на эту тестовую страницу и проверить исходный код страницы, URL-адрес указывает на

<img src="/static/testimage.jpg" /> 

Однако изображение не загружается. Я пробовал это и в нескольких браузерах. Может быть, я где-то пропустил какое-то заявление?

веселит за помощь

ответ

0

вы используете встроенный в runserver команде или вы служить Django приложение какой-то другой способ?

Если вы используете runserver, то ваша проблема заключается в том, что вы не говорите Django, где найти свои статические активы в файловой системе. Вам нужно установить STATIC_ROOT на путь файловой системы, где можно найти ваши статические активы. Попробуйте установить его на: /home/baz/framework/mysite/project_management/static/

Если вы используете другой сервер (например, gunicorn за Nginx, например), то передним интерфейсом должен быть перехват запросов на /static/ и обслуживание их для вас.

+0

STATIC_ROOT где runserver ищет файлы для обслуживания (работает только при DEBUG = True). Кроме того, Django копирует статические файлы во время сбора данных. Команда collectstatic по умолчанию ищет статические файлы в/static/в каждом приложении плюс в любых каталогах, перечисленных в STATICFILES_DIRS. –

+0

Да, я использую встроенный сервер. – dlyxzen

0

Также не забудьте запустить команду управления «collectstatic», как только вы установили «STATIC_ROOT».

https://docs.djangoproject.com/en/1.4/howto/static-files/#deploying-static-files-in-a-nutshell

+0

Привет, хорошо, поэтому я обновил параметр STATIC_ROOT в моем файле конфигурации. Выполнен python manage.py collectstatic. Я вижу, что он собрал testimage из статической папки моих приложений, но когда я обновляю страницу, изображение все равно не загружается, а путь - просто imgsrc = 'testimage.jpg'. – dlyxzen

+0

Поскольку вы тестируете это со встроенным сервером, вам нужно немного настроить urls.py, [см. Здесь] (https://docs.djangoproject.com/en/1.4/howto/static- файлы/# обслуживающих статические-файлы в процессе развития). Теперь, когда это будет сделано, и ваш сервер будет запущен, попробуйте получить доступ к изображению напрямую, перейдя на 'http: // your-url/static/testimage.jpg' - если это работает нормально, но шаблон все равно выводит« src = »testimage .jpg '"вместо" src ='/static/testimage.jpg ", то вы не используете RequestContext при визуализации шаблона, [см. здесь] (http://stackoverflow.com/a/11684482/1428653) , – Matt

+0

Я думал, что это могло быть связано с разрешениями, поэтому я попробовал chmodding статические каталоги до 777, но безрезультатно. – dlyxzen

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