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ügtVielen Dank!
Hi,
Wir benötigen ein paar weitere Informationen zu Ihrem Setup, um Ihnen zu helfen:
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!
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?