mirror of https://github.com/zulip/zulip.git
storage: Stop using django-pipeline.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
This commit is contained in:
parent
fd7803e7f4
commit
2b33822de9
|
@ -74,13 +74,11 @@ needs to be accessible from one of the entry points defined in
|
|||
the compiled JS and CSS.
|
||||
|
||||
If you want to test minified files in development, look for the
|
||||
`PIPELINE_ENABLED =` line in `zproject/settings.py` and set it to `True`
|
||||
-- or just set `DEBUG = False`.
|
||||
`DEBUG =` line in `zproject/settings.py` and set it to `False`.
|
||||
|
||||
## How it works in production
|
||||
|
||||
You can learn a lot from reading about django-pipeline, but a few
|
||||
useful notes are:
|
||||
A few useful notes are:
|
||||
* Zulip installs static assets in production in
|
||||
`/home/zulip/prod-static`. When a new version is deployed, before the
|
||||
server is restarted, files are copied into that directory.
|
||||
|
|
|
@ -8,8 +8,7 @@ main third-party CSS library.
|
|||
|
||||
Zulip currently does not use any CSS preprocessors, and is organized
|
||||
into several files. For most pages, the CSS is combined into a single
|
||||
CSS file by the [static asset pipeline](../subsystems/front-end-build-process.html),
|
||||
controlled by the `PIPELINE_CSS` code in `zproject/settings.py`.
|
||||
CSS file by the [static asset pipeline](../subsystems/front-end-build-process.html).
|
||||
|
||||
The CSS files are:
|
||||
|
||||
|
|
|
@ -5,9 +5,8 @@ from typing import Optional
|
|||
|
||||
from django.conf import settings
|
||||
from django.contrib.staticfiles.storage import ManifestStaticFilesStorage
|
||||
from pipeline.storage import PipelineMixin
|
||||
|
||||
if not settings.PIPELINE_ENABLED:
|
||||
if settings.DEBUG:
|
||||
from django.contrib.staticfiles.finders import find
|
||||
|
||||
def static_path(path: str) -> str:
|
||||
|
@ -44,8 +43,7 @@ class IgnoreBundlesManifestStaticFilesStorage(ManifestStaticFilesStorage):
|
|||
return name
|
||||
return super().hashed_name(name, content, filename)
|
||||
|
||||
class ZulipStorage(PipelineMixin,
|
||||
IgnoreBundlesManifestStaticFilesStorage):
|
||||
class ZulipStorage(IgnoreBundlesManifestStaticFilesStorage):
|
||||
# This is a hack to use staticfiles.json from within the
|
||||
# deployment, rather than a directory under STATIC_ROOT. By doing
|
||||
# so, we can use a different copy of staticfiles.json for each
|
||||
|
|
|
@ -81,9 +81,6 @@ class TemplateTestCase(ZulipTestCase):
|
|||
'zerver/emails/compiled/password_reset.html',
|
||||
'corporate/zephyr.html',
|
||||
'corporate/zephyr-mirror.html',
|
||||
'pipeline/css.jinja',
|
||||
'pipeline/inline_js.jinja',
|
||||
'pipeline/js.jinja',
|
||||
'zilencer/enterprise_tos_accept_body.txt',
|
||||
'zerver/zulipchat_migration_tos.html',
|
||||
'zilencer/enterprise_tos_accept_body.txt',
|
||||
|
|
|
@ -288,7 +288,6 @@ def home_real(request: HttpRequest) -> HttpResponse:
|
|||
'avatar_url': avatar_url(user_profile),
|
||||
'show_debug':
|
||||
settings.DEBUG and ('show_debug' in request.GET),
|
||||
'pipeline': settings.PIPELINE_ENABLED,
|
||||
'search_pills_enabled': settings.SEARCH_PILLS_ENABLED,
|
||||
'show_invites': show_invites,
|
||||
'show_add_streams': show_add_streams,
|
||||
|
|
|
@ -11,7 +11,7 @@ import zerver.views.development.integrations
|
|||
|
||||
# These URLs are available only in the development environment
|
||||
|
||||
use_prod_static = getattr(settings, 'PIPELINE_ENABLED', False)
|
||||
use_prod_static = not settings.DEBUG
|
||||
|
||||
urls = [
|
||||
# Serve useful development environment resources (docs, coverage reports, etc.)
|
||||
|
|
|
@ -576,7 +576,6 @@ INSTALLED_APPS = [
|
|||
'django.contrib.sessions',
|
||||
'django.contrib.staticfiles',
|
||||
'confirmation',
|
||||
'pipeline',
|
||||
'webpack_loader',
|
||||
'zerver',
|
||||
'social_django',
|
||||
|
@ -861,7 +860,7 @@ if CAMO_URI != '':
|
|||
|
||||
STATIC_URL = '/static/'
|
||||
|
||||
# ZulipStorage is a modified version of PipelineCachedStorage,
|
||||
# ZulipStorage is a modified version of ManifestStaticFilesStorage,
|
||||
# and, like that class, it inserts a file hash into filenames
|
||||
# to prevent the browser from using stale files from cache.
|
||||
#
|
||||
|
@ -869,16 +868,8 @@ STATIC_URL = '/static/'
|
|||
# STATIC_ROOT even for dev servers. So we only use
|
||||
# ZulipStorage when not DEBUG.
|
||||
|
||||
# This is the default behavior from Pipeline, but we set it
|
||||
# here so that urls.py can read it.
|
||||
PIPELINE_ENABLED = not DEBUG
|
||||
|
||||
if PIPELINE_ENABLED:
|
||||
if not DEBUG:
|
||||
STATICFILES_STORAGE = 'zerver.lib.storage.ZulipStorage'
|
||||
STATICFILES_FINDERS = (
|
||||
'django.contrib.staticfiles.finders.FileSystemFinder',
|
||||
'pipeline.finders.PipelineFinder',
|
||||
)
|
||||
if PRODUCTION:
|
||||
STATIC_ROOT = '/home/zulip/prod-static'
|
||||
else:
|
||||
|
@ -893,24 +884,7 @@ FILE_UPLOAD_MAX_MEMORY_SIZE = 0
|
|||
|
||||
STATICFILES_DIRS = ['static/']
|
||||
|
||||
# To use minified files in dev, set PIPELINE_ENABLED = True. For the full
|
||||
# cache-busting behavior, you must also set DEBUG = False.
|
||||
#
|
||||
# You will need to run update-prod-static after changing
|
||||
# static files.
|
||||
#
|
||||
# Useful reading on how this works is in
|
||||
# https://zulip.readthedocs.io/en/latest/subsystems/front-end-build-process.html
|
||||
|
||||
PIPELINE = {
|
||||
'PIPELINE_ENABLED': PIPELINE_ENABLED,
|
||||
'CSS_COMPRESSOR': 'pipeline.compressors.yui.YUICompressor',
|
||||
'YUI_BINARY': '/usr/bin/env yui-compressor',
|
||||
'STYLESHEETS': {},
|
||||
'JAVASCRIPT': {},
|
||||
}
|
||||
|
||||
if not PIPELINE_ENABLED:
|
||||
if DEBUG:
|
||||
WEBPACK_STATS_FILE = os.path.join('var', 'webpack-stats-dev.json')
|
||||
else:
|
||||
WEBPACK_STATS_FILE = 'webpack-stats-production.json'
|
||||
|
@ -942,7 +916,6 @@ base_template_engine_settings = {
|
|||
'extensions': [
|
||||
'jinja2.ext.i18n',
|
||||
'jinja2.ext.autoescape',
|
||||
'pipeline.jinja2.PipelineExtension',
|
||||
'webpack_loader.contrib.jinja2ext.WebpackExtension',
|
||||
],
|
||||
'context_processors': [
|
||||
|
@ -961,9 +934,7 @@ default_template_engine_settings.update({
|
|||
# The webhook integration templates
|
||||
os.path.join(DEPLOY_ROOT, 'zerver', 'webhooks'),
|
||||
# The python-zulip-api:zulip_bots package templates
|
||||
os.path.join(
|
||||
STATIC_ROOT if PIPELINE_ENABLED else 'static', 'generated', 'bots'
|
||||
),
|
||||
os.path.join('static' if DEBUG else STATIC_ROOT, 'generated', 'bots'),
|
||||
],
|
||||
'APP_DIRS': True,
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue