权限被拒绝的 Django 静态文件
permision denied django static files
今天我在部署 django 项目 + apache2 时遇到了一些问题 mod_wsgi
让我们澄清一些事实:
1. 这不是我第一次部署
2. 网站正在响应 mod_wsgi
3. "static"文件夹有777个参数包括文件和文件夹
我的虚拟主机是这样的
<VirtualHost *:80>
ServerName myproject.com
AddDefaultCharset UTF-8
ServerAdmin webmaster@myproject.com
ServerAlias www.myproject.com
DocumentRoot /home/ilyas/open.tm/bin/myproject/
WSGIScriptAlias / /home/ilyas/open.tm/bin/myproject/myproject/index.wsgi
<Directory /home/ilyas/open.tm/bin/myproject>
Order deny,allow
Require all granted
</Directory>
Alias /static/ /home/ilyas/open.tm/bin/myproject/static/
<Directory /home/ilyas/open.tm/bin/myproject/static>
Order allow,deny
Require all granted
</Directory>
</VirtualHost>
我的 index.wsgi 看起来像这样:
import os
import sys
import site
# Add the site-packages of the chosen virtualenv to work with
site.addsitedir('~/.virtualenvs/open.tm/local/lib/python2.7/site-packages')
# Add the app's directory to the PYTHONPATH
sys.path.append('/home/ilyas/open.tm/bin')
sys.path.append('/home/ilyas/open.tm/bin/myproject')
sys.path.append('/home/ilyas/open.tm/bin/myproject/static')
sys.path.append('/home/ilyas/open.tm/bin/myproject/myproject')
# Activate your virtual env
activate_env=("/home/ilyas/open.tm/bin/activate_this.py")
execfile(activate_env, dict(__file__=activate_env))
from django.core.wsgi import get_wsgi_application
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
application = get_wsgi_application()
我的 settings.py
的最终文件部分
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
STATICFILES_DIRS = (
'static', '/home/ilyas/open.tm/bin/myproject/static/',
'media', '/home/ilyas/open.tm/bin/myproject/media/',
)
MEDIA_ROOT = os.path.join(BASE_DIR, "static/")
网站运行良好,我可以浏览页面,我可以访问管理后台,我可以通过后台添加记录...但是静态文件无法加载"You don't have permission to access /static/image.png on this server."
Django = 1.9.2
阿帕奇 = 2.4.7
根据文档:
https://httpd.apache.org/docs/2.4/upgrading.html
这在 2.4 中不需要:
Order allow,deny
尝试删除它?
今天我在部署 django 项目 + apache2 时遇到了一些问题 mod_wsgi
让我们澄清一些事实: 1. 这不是我第一次部署 2. 网站正在响应 mod_wsgi 3. "static"文件夹有777个参数包括文件和文件夹
我的虚拟主机是这样的
<VirtualHost *:80>
ServerName myproject.com
AddDefaultCharset UTF-8
ServerAdmin webmaster@myproject.com
ServerAlias www.myproject.com
DocumentRoot /home/ilyas/open.tm/bin/myproject/
WSGIScriptAlias / /home/ilyas/open.tm/bin/myproject/myproject/index.wsgi
<Directory /home/ilyas/open.tm/bin/myproject>
Order deny,allow
Require all granted
</Directory>
Alias /static/ /home/ilyas/open.tm/bin/myproject/static/
<Directory /home/ilyas/open.tm/bin/myproject/static>
Order allow,deny
Require all granted
</Directory>
</VirtualHost>
我的 index.wsgi 看起来像这样:
import os
import sys
import site
# Add the site-packages of the chosen virtualenv to work with
site.addsitedir('~/.virtualenvs/open.tm/local/lib/python2.7/site-packages')
# Add the app's directory to the PYTHONPATH
sys.path.append('/home/ilyas/open.tm/bin')
sys.path.append('/home/ilyas/open.tm/bin/myproject')
sys.path.append('/home/ilyas/open.tm/bin/myproject/static')
sys.path.append('/home/ilyas/open.tm/bin/myproject/myproject')
# Activate your virtual env
activate_env=("/home/ilyas/open.tm/bin/activate_this.py")
execfile(activate_env, dict(__file__=activate_env))
from django.core.wsgi import get_wsgi_application
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
application = get_wsgi_application()
我的 settings.py
的最终文件部分STATIC_URL = '/static/'
MEDIA_URL = '/media/'
STATICFILES_DIRS = (
'static', '/home/ilyas/open.tm/bin/myproject/static/',
'media', '/home/ilyas/open.tm/bin/myproject/media/',
)
MEDIA_ROOT = os.path.join(BASE_DIR, "static/")
网站运行良好,我可以浏览页面,我可以访问管理后台,我可以通过后台添加记录...但是静态文件无法加载"You don't have permission to access /static/image.png on this server."
Django = 1.9.2 阿帕奇 = 2.4.7
根据文档:
https://httpd.apache.org/docs/2.4/upgrading.html
这在 2.4 中不需要:
Order allow,deny
尝试删除它?