使用 mod_wsgi 在 Apache 上的 Django 中找不到 CSS 文件路径
Can not find CSS file path in Django on Apache with mod_wsgi
当 django 运行 在 apache 上使用 mod_wsgi.
时如何在 django 设置文件上写入 css 路径
我写的 apache 设置文件如下。
#httpd.conf
WSGIPythonHome /opt/python3.4
WSGIPythonPath /opt/python3.4/bin/python3
WSGIScriptAlias / /usr/local/django/mysite/mysite/wsgi.py
Alias /static/ /usr/local/django/mysite/mysite/static/
此别名命令适用于 CSS django 管理站点上的路径。
我为管理站点复制静态文件。
How to use Django with Apache and mod_wsgi
我正在使用 django 1.7 版和 1.7 版的主要教程。
教程 6 是如何在 django 上使用静态 CSS 和图像文件。
我的 django 文件树如下
mysite
- manage.py
+ mysite
- settings.py
+ static
- urls.py
- wsgi.py
+ polls
- admin.py
- models.py
+ templates
+ polls
- index.html
- urls.py
+ static
+ polls
- style.css
- views.py
mysite/settings.py
PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__))
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(PROJECT_ROOT,'static')
style.css 被 polls/templates/polls/views.py
使用
polls/templates/polls/views.py
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}" />
我访问了本地主机。
但是,找不到 CSS 民意调查文件。 (localhost/static/polls/style.css)
如果我修改 httpd.conf 文件如下。
WSGIPythonHome /opt/python3.4
WSGIPythonPath /opt/python3.4/bin/python3
WSGIScriptAlias / /usr/local/django/mysite/mysite/wsgi.py
Alias /static/ /usr/local/django/mysite/polls/static/polls/
它可以在投票应用程序上使用静态文件。
但是,在这种情况下,我找不到管理站点的静态文件。
我想在管理网站和我的应用程序上使用静态文件。
如何在 mod_wsgi 的 apache 上使用静态文件?
你应该做类似的事情。
Alias /static/ /path/to/your/STATIC_ROOT/directory/
<Directory /path/to/your/STATIC_ROOT/directory>
Require all granted
</Directory>
在httpd.conf中,
你应该 运行 ./manage.py collectstatic
这样你所有的静态文件 + django 管理静态文件都收集在 STATIC_ROOT
目录中。
然后打开您的主 urls.py
并在末尾添加这些行
from settings import STATIC_ROOT
if conf.DEBUG == True:
urlpatterns = patterns('',
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': STATIC_ROOT}),
) + urlpatterns
将这些行添加到您的 settings.py
STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, 'polls/static'),
)
并通过 docs.
希望一切顺利。
当 django 运行 在 apache 上使用 mod_wsgi.
时如何在 django 设置文件上写入 css 路径
我写的 apache 设置文件如下。
#httpd.conf
WSGIPythonHome /opt/python3.4
WSGIPythonPath /opt/python3.4/bin/python3
WSGIScriptAlias / /usr/local/django/mysite/mysite/wsgi.py
Alias /static/ /usr/local/django/mysite/mysite/static/
此别名命令适用于 CSS django 管理站点上的路径。
我为管理站点复制静态文件。
How to use Django with Apache and mod_wsgi
我正在使用 django 1.7 版和 1.7 版的主要教程。
教程 6 是如何在 django 上使用静态 CSS 和图像文件。
我的 django 文件树如下
mysite
- manage.py
+ mysite
- settings.py
+ static
- urls.py
- wsgi.py
+ polls
- admin.py
- models.py
+ templates
+ polls
- index.html
- urls.py
+ static
+ polls
- style.css
- views.py
mysite/settings.py
PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__))
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(PROJECT_ROOT,'static')
style.css 被 polls/templates/polls/views.py
使用
polls/templates/polls/views.py
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}" />
我访问了本地主机。
但是,找不到 CSS 民意调查文件。 (localhost/static/polls/style.css)
如果我修改 httpd.conf 文件如下。
WSGIPythonHome /opt/python3.4
WSGIPythonPath /opt/python3.4/bin/python3
WSGIScriptAlias / /usr/local/django/mysite/mysite/wsgi.py
Alias /static/ /usr/local/django/mysite/polls/static/polls/
它可以在投票应用程序上使用静态文件。
但是,在这种情况下,我找不到管理站点的静态文件。
我想在管理网站和我的应用程序上使用静态文件。
如何在 mod_wsgi 的 apache 上使用静态文件?
你应该做类似的事情。
Alias /static/ /path/to/your/STATIC_ROOT/directory/
<Directory /path/to/your/STATIC_ROOT/directory>
Require all granted
</Directory>
在httpd.conf中,
你应该 运行 ./manage.py collectstatic
这样你所有的静态文件 + django 管理静态文件都收集在 STATIC_ROOT
目录中。
然后打开您的主 urls.py
并在末尾添加这些行
from settings import STATIC_ROOT
if conf.DEBUG == True:
urlpatterns = patterns('',
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': STATIC_ROOT}),
) + urlpatterns
将这些行添加到您的 settings.py
STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, 'polls/static'),
)
并通过 docs.
希望一切顺利。