Django-compressor: Django ruft keine komprimierten Dateien ab, wenn Debug auf False gesetzt ist

Erstellt am 22. Dez. 2012  ·  5Kommentare  ·  Quelle: django-compressor/django-compressor

Also habe ich django-compressor in der Entwicklung mit Debug = False arbeiten lassen. Sobald ich jedoch Debug = True setze, scheint django-compressor die richtigen URLs, Dateien und alles zu generieren, aber Django selbst gibt einen 404 für diese Dateien zurück.

Ich habe

STATIC_ROOT = os.path.join(PROJECT_DIR, "static_media")

und im Ordner static_media in meinem Projekt kann ich tatsächlich die Datei CACHE/css/bfdeac875f7a.css sehen, die vom Kompressor erstellt wurde.

In der generierten HTML-Datei kann ich auch sehen

<link rel="stylesheet" href="/static/CACHE/css/bfdeac875f7a.css" type="text/css" />

aber wenn die Seite geladen wird, sagt Runserver:

[21/Dec/2012 22:28:44] "GET /static/CACHE/css/bfdeac875f7a.css HTTP/1.1" 404 276

Verpasse ich etwas? ich habe schon

  • 'django.core.context_processors.static', zu TEMPLATE_CONTEXT_PROCESSORS hinzugefügt
  • 'compressor.finders.CompressorFinder', zu STATICFILES_FINDERS hinzugefügt
  • 'compressor', zu INSTALLED_APPS hinzugefügt

Vielen Dank!

Hilfreichster Kommentar

Entschuldigung, kann nicht glauben, dass ich das vorhin übersehen habe: Ich habe irgendwie gelesen, dass Sie Probleme hatten, wenn DEBUG _True_ ist.

Trotzdem. Wenn DEBUG = False ist, wird Ihr Runserver aufgrund von Leistungs- und Sicherheitsproblemen standardmäßig die Bereitstellung von statischen Dateien selbst verweigern. Dies soll verhindern, dass Sie dies in der Produktion verwenden. Um Ihre statischen Dateien ordnungsgemäß lokal testen zu können, wenn DEBUG auf False steht, müssen Sie das Flag --insecure an runserver übergeben, wie hier dokumentiert: https://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/ #django -admin-option---unsicher

Behebt das dein Problem?

Alle 5 Kommentare

Hi,

Wir benötigen ein paar weitere Informationen zu Ihrem Setup, um Ihnen zu helfen:

  • Ihre COMPRESS_*-Einstellungen, STATIC_URL-Einstellung, STATICFILES_*-Einstellungen
  • Sind statische Dateien in Ihren INSTALLED_APPS enthalten?
  • Was ist deine Version von Django?
  • Funktionieren andere statische Dateien richtig? Sie verwenden den Runserver, um sie zu bedienen, oder?

Vielen Dank

Hi,

Ich verwende Django 1.4.3 mit den folgenden Einstellungen:

...

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = os.path.join(PROJECT_DIR, "static_media")

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'

# Additional locations of static files
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(PROJECT_DIR, "static"),
)

# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
    'compressor.finders.CompressorFinder',
)

COMPRESS_PRECOMPILERS = (
    ('text/coffeescript', 'coffee --compile --stdio'),
    ('text/x-scss', 'sass --scss {infile} {outfile}'),
)

...

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    # 'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
    ...
    'compressor',
    ...
)

...

Auf Dateien, die ich manuell in static_media lege, kann auch nicht über die /static/ URL zugegriffen werden, daher muss ich staticfiles nicht richtig konfiguriert haben... Ich habe auch von Django 1.3 migriert, falls das wichtig ist. Hätten Sie eine Ahnung, was ich versuchen sollte?

Außerdem ruft Runserver die Dateien in meinem static_media Ordner erfolgreich ab, wenn Debug wahr ist, schlägt jedoch fehl, wenn er falsch ist ...

Entschuldigung, kann nicht glauben, dass ich das vorhin übersehen habe: Ich habe irgendwie gelesen, dass Sie Probleme hatten, wenn DEBUG _True_ ist.

Trotzdem. Wenn DEBUG = False ist, wird Ihr Runserver aufgrund von Leistungs- und Sicherheitsproblemen standardmäßig die Bereitstellung von statischen Dateien selbst verweigern. Dies soll verhindern, dass Sie dies in der Produktion verwenden. Um Ihre statischen Dateien ordnungsgemäß lokal testen zu können, wenn DEBUG auf False steht, müssen Sie das Flag --insecure an runserver übergeben, wie hier dokumentiert: https://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/ #django -admin-option---unsicher

Behebt das dein Problem?

Oh Gott, mein Fehler. Ich hatte in meiner ursprünglichen Frage versehentlich "Wahr" und "Falsch" vertauscht, sorry für die Verwirrung!

Und vielen Dank, das löst das Problem!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen