0

我将 Django 1.8.2 与 django-pipeline 1.5.1 和 Python 3.4 一起使用

我按照该工具作者提供的安装说明进行操作。在我提供开发服务器的本地机器上,一切正常。但是当我尝试将它部署在使用 mod_wsgi4.4.13 运行 Apache2 的生产服务器上时,我收到此错误:

SyntaxError at /
invalid syntax (_base.py, line 355)

Error during template rendering

In template /var/www/django/templates/base.html, error at line 13

invalid syntax

12      {% load pipeline %}
13            
          {% stylesheet 'vendor' %}

14      {% stylesheet 'master' %}
15      {% javascript 'vendor' %}
16      {% javascript 'master' %}

显然,Apache 不知道如何处理关键字stylesheet. 不得不说,该网站以前运行良好。但是使用 django-pipeline 我得到了这个错误。

我的管道配置如下所示:

settings.py

DEBUG = True

INSTALLED_APPS = (
    'pipeline',
    ...
)

MIDDLEWARE_CLASSES = (
    'pipeline.middleware.MinifyHTMLMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'pipeline.finders.PipelineFinder',
)

PIPELINE_COMPILERS = (
  'pipeline.compilers.sass.SASSCompiler',
)

PIPELINE_CSS_COMPRESSOR = 'pipeline.compressors.yuglify.YuglifyCompressor'

PIPELINE_JS_COMPRESSOR = 'pipeline.compressors.yuglify.YuglifyCompressor'

PIPELINE_CSS = {
  'master': {
    'source_filenames': (
      'css/*.sass',
    ),
    'output_filename': 'compressed/master.css',
    'extra_context': {
      'media': 'screen, projection',
    },
  },
  'vendor': {
    'source_filenames': (
      'assets/bootstrap/css/bootstrap.min.css',
      'assets/bootstrap/css/bootstrap-theme.min.css',
      'assets/bootswatch/bootswatch.min.css',
    ),
    'output_filename': 'compressed/vendor.css'
  }
}

PIPELINE_JS = {
  'master': {
    'source_filenames': (
      'js/*.js',
    ),
    'output_filename': 'compressed/master.js'
  },
  'vendor': {
    'source_filenames': (
      'assets/jquery/jquery.min.js',
      'assets/bootstrap/js/bootstrap.min.js',
    ),
    'output_filename': 'compressed/vendor.js'
  }
}

我的问题是,我确信已经正确安装和配置了 django-pipeline,但是在我的生产服务器上我得到了这个错误。

压缩和提供 css 和 js 文件可以在本地机器上正常工作。因此 django-pipeline 不能被严重错误配置。

生产服务器

  • Ubuntu 14.04
  • 最新的 Apache 2.4.7
  • 蟒蛇 3.4
  • Django 和安装在 Virtualenv 中的所有应用程序
  • mod_wsgi 4.4.13

摘自虚拟主机

WSGIDaemonProcess django python-path=/var/www/django:/usr/local/share/virtualenvs/django/lib/python3.4/site-packages
WSGIProcessGroup django
WSGIScriptAlias /django /var/www/django/core/wsgi.py
WSGISocketPrefix /var/run/apache2/wsgi

您对如何解决此问题有任何想法吗?谢谢!

4

0 回答 0