2016-10-20 105 views
0

我一直在這裏工作了大約3個小時,而我完全迷失了,並且在圈子中運行。我試圖讓我的靜態和媒體文件進入部署。Django靜態文件無法在部署中加載

我的設置文件看起來像這樣:

DEBUG = False 

... 

STATIC_ROOT = '/home/huhu/webapps/eng30_static_media/static' 
MEDIA_ROOT = '/home/huhu/webapps/eng30_static_media/media' 

STATIC_URL = '/static/' 
MEDIA_URL = '/media/' 

我已經運行collectstatic和我的靜態文件在/ home /乎乎/ webapps /下eng30_static_media /靜態我仍然不知道該怎麼辦與媒體文件。我在這裏錯過了什麼?我目前沒有任何靜態js,靜態img,靜態css或通過管理面板顯示上傳的媒體。

+0

沒什麼。一旦你通過你的網站或管理員上傳了一些東西,MEDIA_ROOT目錄就會被創建並保存在那裏。 –

+0

您應該提供更多的上下文,什麼是您的服務器類型,部署方法,什麼Web服務器? – Selcuk

+0

查看http://djangodeployment.com/2016/10/18/checklist-for-django-settings-on-deployment/,並在'/var/log/nginx/error.log中檢查Web服務器日誌文件。 '或'/ var/log/apache2/error.log'。 –

回答

0

如果您正在使用nginx的,你想補充以下位置到您的服務器塊

location /static/ { 
    root /home/huhu/webapps/eng30_static_media; 
} 

因爲你DEBUG設置爲False,Django會不會服務於staticfiles您在生產喜歡它在你的開發服務器上。這是設計原因,因爲正如文檔所述,靜態文件應用程序效率非常低,可能不安全:https://docs.djangoproject.com/en/1.10/howto/static-files/

0

打開瀏覽器控制檯並查看獲取靜態文件時返回的響應。

你必須讓你的網絡服務器提供文件。 Make sure that your web server (apache/nginx) have proper permissions to access the static directory,你的情況'/ home/huhu/webapps/eng30_static_media/static'。 如果您仍然會面臨的問題,然後move static files to /var/www/static directory if you are using apache和使用ls -l

ls -l 
-rw-r--r-- 1 www-data www-data 11321 Jul 28 17:08 index.html 

爲Apache user/group www-data/www-data必須對文件的訪問,需要改變你的靜態根

STATIC_ROOT = '/var/www/static' 

檢查權限/所有權上的文件通過服務器提供服務。如果文件由其他人擁有,請在文件/目錄上嘗試使用chown以更改所有權。

chown -R chown -R username:group directory 

如果您使用nginx,然後define your static files directory in nginx conf並嘗試重新加載頁面。