使用(Django + uwsgi + nginx),项目部署时,提示无法识别自定义过滤器模板标签‘

2019-07-09 18:01发布

问题:

将个人项目部署到ubuntu服务器(16.04)时,可以使用命令(python manage.py runserver 0.0.0.0:8000)访问网页上的项目,只是没有加载静态文件。但是,使用(uwigs)命令运行时,报告错误无法访问。(django2.1 ,python3.6)

项目内容:

# settings.py文件
TEMPLATES = [
    {
        --snip--
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
            # 配置模板的static标签;
            'builtins': [
                'django.templatetags.static'
            ],
        },
    },
]

# 静态文件存放路径;
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,'front','static_dist')
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'front','dist'),
]

在Xshell上连接ubuntu服务器后运行项目的报错信息:

1、运行:python manage.py runserver 0.0.0.0:8000 时正常加载

2、运行:uwsgi --ini xfz_wsgi.ini 时报错,找不到news_filter文件

尝试过网上的方法,在settings.py中添加news_filter,然后报了另一个错误:

# 添加了 libraries
TEMPLATES = [
    {
        --snip--
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
            # 配置模板的static标签;
            'builtins': [
                'django.templatetags.static'
            ],
            # 添加的内容
            'libraries':{
                'news_filters': 'apps.news.templatetags.news_filters',
                'payinfo_filters': 'apps.payinfo.templatetags.payinfo_filters'
            }
        },
    },
]

再次运行 uwsgi 命令时,还是报错:

请教下各位,还有什么可以解决的方法,谢谢!

回答1:

将图中红框内的内容注释后,问题得到解决。(暂不知道有什么后果,对该行内容不了解)