我有以下目录结构
-----root
|___docpd
|__docpd (contains settings.py, wsgi.py , uwsgi.ini)
|__static
在开发环境中安装vanilla django期间,一切正常(所有静态文件都用来加载)。但是现在在设置了uwsgi之后,我发现没有一个静态文件被加载(我得到了404错误)。在
我试过什么?
^{pr2}$一些代码
uwsgi.ini
[uwsgi]
chdir=/home/ubuntu/docpad/Docpad/
wsgi-file=/home/ubuntu/docpad/Docpad/Docpad/wsgi.py
master=True
pidfile=/tmp/project-master.pid
vacuum=True
max-requests=5000
daemonize=/var/log/uwsgi/docpad.log
wsgi.py
import os,sys
sys.path.append('/home/ubuntu/docpad/Docpad/')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Docpad.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
设置.py
from sys import path
from os.path import abspath, dirname, join, normpath
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
print "Base dir = " , BASE_DIR
DJANGO_ROOT = dirname(abspath(__file__))
print "Root =",DJANGO_ROOT
SITE_ROOT = dirname(DJANGO_ROOT)
print "SITE =", SITE_ROOT
path.append(DJANGO_ROOT)
print "Path = ",path
print BASE_DIR
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.6/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'SECRET'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
TEMPLATE_DEBUG = True
PROJECT_PATH = os.path.join(BASE_DIR, os.pardir)
PROJECT_PATH = os.path.abspath(PROJECT_PATH)
TEMPLATE_PATH = os.path.join(PROJECT_PATH, 'Docpad/templates/')
print "TEMPLATES = ",TEMPLATE_PATH
# TODO make separate template_paths
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
TEMPLATE_PATH,
)
...
运行应用程序后,所有静态资源(如css/js文件)的值为404。在
更新
当我这么做的时候
python manage.py runserver 0.0.0.0:8000
服务器开始为静态文件提供服务
但是,这个命令
uwsgi --ini uwsgi.ini --http :8000
给了我一个问题(不加载静态文件)。在
我现在完全没有头脑,一直在尝试各种各样的选择,但没有运气。在
如果有人能帮忙,那就太好了。在
你也可以这样做:
或者只需将其添加到.ini文件中:
^{pr2}$在设置中
在网址.py在
^{pr2}$我通过以下方法解决了这个问题:
添加
检查static=/your django dir/
在uwsgi.ini文件文件。 对我有用!在
假设您的静态资产位于/customers/foobar/app001/public下。在将请求传递到动态应用程序之前,您需要检查每个请求在该目录中是否有相应的文件。--check static选项适合您: --检查static/customers/foobar/app001/public
http://uwsgi-docs.readthedocs.io/en/latest/StaticFiles.html
相关问题 更多 >
编程相关推荐