2012-09-18 35 views
-1

我在開發環境中部署文件時遇到問題。
請參閱下面的配置。
python manage.py collectstatic按照預期從'/Users/vikingosegundo/Projects/website/media/'收集所有文件並將它們存儲在/Users/vikingosegundo/Projects/website/mydjangoproject/static/
雖然使用<link href="{% static "css/style.css"%}" rel="stylesheet" type="text/css">(呈現爲<link href="/staticmedia/css/style.css" rel="stylesheet" type="text/css">)時,指向css文件的鏈接是正確的,但將部署/Users/vikingosegundo/Projects/website/media/的原始文件,而不是從STATIC_ROOT/Users/vikingosegundo/Projects/website/mydjangoproject/static/部署原始文件。
即使我刪除/Users/vikingosegundo/Projects/website/media/中的文件。從STATICFILES_DIRS部署靜態文件,但不是STATIC_ROOT

我的錯誤配置在哪裏?

settings.py

MEDIA_ROOT = '/Users/vikingosegundo/Projects/website/mydjangoproject/media/' 
MEDIA_URL = '/sitemedia/' 
STATIC_ROOT = '/Users/vikingosegundo/Projects/website/mydjangoproject/static/' 
STATIC_URL = '/staticmedia/' 
STATICFILES_DIRS = [ 
     '/Users/vikingosegundo/Projects/website/media/', 
] 

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
) 

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth', 
    'django.core.context_processors.debug', 
    'django.core.context_processors.i18n', 
    'django.core.context_processors.media', 
    'django.core.context_processors.static', 
) 


INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    #.... 

) 

回答

1

我認爲,這是因爲使用內建的意見和助手僅用於開發和調試Django的靜態文件的服務。當您的項目設置中DEBUG爲True時,您的靜態文件將從其原始位置提供。這有助於避免在每次更改CSS文件時被迫運行collectstatics管理命令。

當您關閉DEBUG設置時,django.conf.urls.static.static及其堂兄幫助程序將停止工作,因爲它們僅用於開發目的。儘管如此,模板標籤仍然有效,因爲它們必須指向生產或開發中正確的靜態文件URL。

運行collectstatic管理命令是將靜態文件複製到其最終目標(STATIC_URL)的便利幫助者,在生產環境中爲它們提供服務是您自己的責任。這最好通過(靜態)Web服務器位置完成(避免通過django/python進程來抽取它們),因此Django的文檔明確建議不要使用Django進行靜態文件服務。

請參閱Managing static files: Serving static files in development瞭解有關在開發中提供靜態文件的更多信息。

+0

嘿,謝謝你的回答。你似乎是對的。也許作者應該更接近文檔的開頭添加警告。 :) – vikingosegundo

相關問題