2016-06-26 2 views
0

Я провел весь день на этом. Я не мог получить мои статические файлы. Приложение Django работает нормально. Я использую: Python 3.4, Django 1.8.13, mod_wsgi 4.5.2. Я решил большинство ошибок в моем httpd.conf, используя другие вопросы в SO. Что еще необходимо для выполнения этой работы.Статические файлы, которые не подаются через Apache для приложения Django

httpd.conf

ServerRoot "/home/rajkumar2014/webapps/allure/apache2" 

LoadModule authz_core_module modules/mod_authz_core.so 
LoadModule dir_module  modules/mod_dir.so 
LoadModule env_module  modules/mod_env.so 
LoadModule log_config_module modules/mod_log_config.so 
LoadModule mime_module  modules/mod_mime.so 
LoadModule rewrite_module modules/mod_rewrite.so 
LoadModule setenvif_module modules/mod_setenvif.so 
LoadModule wsgi_module  modules/mod_wsgi.so 
LoadModule unixd_module  modules/mod_unixd.so 
LoadModule alias_module  modules/mod_alias.so 

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
CustomLog /home/rajkumar2014/logs/user/access_allure.log combined 
ErrorLog /home/rajkumar2014/logs/user/error_allure.log 

Listen 21188 
KeepAlive Off 
SetEnvIf X-Forwarded-SSL on HTTPS=1 
ServerLimit 1 
StartServers 1 
MaxRequestWorkers 5 
MinSpareThreads 1 
MaxSpareThreads 3 
ThreadsPerChild 5 

WSGIRestrictEmbedded On 
WSGILazyInitialization On 

<VirtualHost *:21188> 

    Alias /media "/home/webapps/allure_media" 
    Alias /static "/home/webapps/allure_static" 

    <Directory /home/rajkumar2014/webapps/allure_media> 
    Require all granted 
    </Directory> 

    <Directory /home/rajkumar2014/webapps/allure_static> 
    Require all granted 
    </Directory> 

    WSGIDaemonProcess allure processes=2 threads=12 python-path=/home/rajkumar2014/webapps/allure/allure:/home/rajkumar2014/webapps/allure/lib/python3.4/site-packages:/home/rajkumar2014/webapps/allure/lib/python3.4 
    WSGIProcessGroup allure 

    WSGIScriptAlias//home/rajkumar2014/webapps/allure/allure/allure/wsgi.py 
    <Directory /home/rajkumar2014/webapps/allure/apache2> 
    Require all granted 
    </Directory> 

</VirtualHost> 

settings.py

STATIC_URL = '/static/' 

STATIC_ROOT = '/home/rajkumar2014/webapps/allure_static/' 

STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),) 

# Media files (All user uploaded content) 

MEDIA_ROOT = '/home/rajkumar2014/webapps/allure_media/' 

MEDIA_URL = '/media/' 

Пожалуйста, помогите.

ответ

1

Я новичок в jjano/python сам и сражался в этом сражении в прошлом месяце за свое первое приложение django ... im не администратор сервера, поэтому я не могу сказать, что именно вы делаете неправильно, но, похоже, ваш синтаксис это немного отличается от того, что я сделал, у меня есть это как

Alias /static/ /home/ksjdsd3/public_html/mysite/static/ 
<Directory /home/ksjdsd3/public_html/mysite/static> 
    Require all granted 
</Directory> 

прежде всего есть / после статического и путь к директории не в цитате

0

я использовал, чтобы иметь проблемы обслуживания статического файла с Webfaction , в зависимости от того, как я устанавливал Django (с помощью установщика webfaction вы можете настроить полное приложение django или просто apache/mod_wsgi, где вы можете развернуть выпуск django).

Webfaction имеет дополнительный процесс nginx, выполняющийся на уровне корня для , обслуживающий статические файлы. Поэтому вы должны проверить списки контроля доступа - ACLs.

Для меня этот ACL был проблемой, Пользователь nginx не имел доступа для чтения в статическую папку.

Так может быть, вы можете войти в UNIX терминал на webfaction и запустить getfacl (вы должны получить что-то похожее на этот выход):

[[email protected] ~]$getfacl /home/rajkumar2014/webapps/allure_static/ 

# file: home/rajkumar2014/webapps/allure_static/ 
# owner: rajkumar2014 
# group: rajkumar2014 
user::rwx 
user:apache:r-x 
user:nginx:r-x 
group::rwx 
mask::rwx 
other::r-x 

[[email protected] ~]$ getfacl /home/rajkumar2014/webapps/allure/allure/allure/wsgi.py 
getfacl: Removing leading '/' from absolute path names 
# file: home/rajkumar2014/webapps/allure/allure/allure/wsgi.py 
# owner: rajkumar2014 
# group: rajkumar2014 
user:apache:r-x 
user:nginx:r-x 
group::rw- 
mask::rwx 
other::-- 

ideea является то, что пользователь апач и пользователь Nginx должен иметь доступ на чтение к вашей статической папке, а также к wsgi.py (если она была загружена из внешнего источника - вашего ноутбука).

Также проверьте наличие ошибок и ссылки на статичную папку в журналах:

  • Frontend Бревно, процесс Nginx служит статическим; Расположение:

    /home/rajkumar2014/logs/frontend/

  • Журналы пользователей, для установленных пользовательских приложений (как Джанго)

    /home/rajkumar2014/logs/user/

мне было бы интересно знать:

  • вы использовали установщик Webfaction Django?
  • Вы создали webfaction app to serve static assets?
  • Вы можете найти ссылки на свою статическую папку в журналах frontend?
  • у вас есть старый (Centos 6.5, Apache 2.2) или новый (Centos 7, Apache 2.4) план Webfaction?

Более подробно об этом в Webfaction Docs

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