0

При развертывании приложения django. У меня проблема со статическими файлами. У меня есть файлы JS и CSS в статическом каталоге. Но браузер не может найти эти файлы. У меня есть те же файлы и настройки на локальном компьютере, что и ubuntu, как и серверная ОС, и работают на локальном компьютере. Хотя у него одинаковые настройки, но я вставляю этот статический каталог и настройки файлов ниже.статические файлы не найдены в django 1.4

# Absolute filesystem path to the directory that will hold user-uploaded files. 
# Example: "/home/media/media.lawrence.com/media/" 
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 = '' 

# 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 = os.path.join(ROOT_PATH,'static') 

# URL prefix for static files. 
# Example: "http://media.lawrence.com/static/" 
STATIC_URL = '/static/' 


# Additional locations of static files 
STATICFILES_DIRS =(
       os.path.join(ROOT_PATH,'static'), 
) 

# List of finder classes that know how to find static files in 
# various locations. 
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
# 'django.contrib.staticfiles.finders.DefaultStorageFinder', 
) 

Здесь корневой путь в коде выше, определяется до того, что есть:

import os 
#from django.contrib.sites.models import Site 
ROOT_PATH = os.path.dirname(__file__) 

Я использую mod_wsgi с apache2, в моем понимании, это должно найти файлы при его загрузке/somefoldername затем обозреватель зайдите в этот каталог, но не получите, где проблема. Знать настройки среды и wsgi e.t.c. Я следую за этим вопросом, в котором я разместил свои данные файла wsgi и способ его работы: 500 server error on django site after shifting to server

У меня много проблем при поиске приложений и других шаблонов и модулей e.t.c. даже в syncdb commmand на сервере, для шаблонов я добавил корневой путь, и он начал работать, добавив путь к проекту в файл wsgi, но тем не менее проблема с статическими файлами не решена. Скажите, если вы, ребята, имеете представление о том, что я делаю неправильно или что здесь проблема.

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

+0

где статические файлы хранятся на сервере апача? 'MEDIA_ROOT' и' MEDIA_URL' должны указывать на это. –

+2

Похоже, вам нужно установить псевдоним из '/ static /' в ваш статический каталог в конфигурации apache sites. – drewman

+0

@drewman Как я могу установить псевдоним/static/в моем конфиге apache? – Hafiz

ответ

2

При запуске «collectstatic», которые все файлы копируются в STATIC_ROOT? Сначала вы должны проверить это, чтобы вы знали, где файлы должны быть.

Вы настроили apache для обслуживания статических файлов в STATIC_ROOT как «/ static /»? Django не обслуживает статические файлы для вас (DEBUG = False), поэтому вам необходимо настроить программное обеспечение веб-сервера, чтобы обслуживать файлы для вас.

Кроме того, я не думаю, что вы хотите, чтобы ваш STATICFILES_DIRS содержал тот же путь, что и STATIC_ROOT. Файлы скопированы от в каталогах STATICFILES_DIRS до STATIC_ROOT. Ваш STATICFILES_DIRS должен содержать dirs, которые иначе не выполняются в процессе поиска «collectstatic».

+0

Я не запускал collectstatic, просто загружал файлы с моей машины на сервер и находился в статическом каталоге. – Hafiz

+0

В общем, вы должны установить 'STATIC_ROOT' в другую директорию, чем все, перечисленные в' STATIC_DIRS'. Я рекомендую 'STATIC_ROOT = path.join (TOP_DIR, 'staticfiles')'. – drewman

+0

Если вы не используете «collectstatic», STATICFILES_DIRS никогда не используется и должно быть пустым. Поскольку вы вручную загружаете статические файлы, вы знаете, что они находятся в нужном месте. Следующим шагом будет настройка вашего программного обеспечения веб-сервера (Apache в вашем случае) для обслуживания файлов, расположенных в вашем STATIC_ROOT, когда запрашивается http: // yourdomain/static /. –

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