Re: can't get STATICFILES to work (Django dev version)
On 3/10/2011 10:00pm, Gelonida N wrote:
> On 09/26/2011 10:21 PM, nara wrote:
>> I am having trouble getting STATICFILES to work. I have read the docs,
>> and followed the instructions, but I never get my css files to load.
>> My current workaround is to put all the css inline in my template
>> file, but that should not be a permanent solution.
>>
Here is a bit of my own interpretation which seems to work ...
Project layout ... [0]
projroot PROJECT_ROOT [1]
=== === === === === === === === === === === === === === === === ===
--- creds project credentials non-versioned for security
--- htdocs production webserver document root [2]
--- --- static all collected static files - STATIC_ROOT [3]
--- --- --- app1 app1 static files root
--- --- --- --- css app1 css
--- --- --- --- images app1 static images
--- --- --- --- js app1 javascript
--- --- --- app2 app2 static files root
--- --- --- --- css app2 css
--- --- --- --- images app2 static images
--- --- --- --- js app2 javascript
--- --- media content-related media - MEDIA_ROOT [4]
--- --- --- app1 app1 content media root
--- --- --- --- images app1 content images
--- --- --- --- videos app1 content videos
--- --- --- app2 app2 content media root
--- --- --- --- images app2 content images
--- --- --- --- videos app2 content videos
--- PROJECT SRC_ROOT (for urls.py, settings.py etc) [5]
--- --- app1 app1 source (models.py etc)
--- --- --- locale app1 root for i18n/i10n translations/formats
--- --- --- static app1 static files root [6]
--- --- --- --- css app1 default stylesheets
--- --- --- --- js app1 javascript
--- --- --- templates app1 templates (eg base_app.html)
--- --- --- tests app1 unit tests
--- --- app2 app2 source (models.py etc)
--- --- --- locale app2 root for i18n/i10n translations/formats
--- --- --- static app2 static files root [6]
--- --- --- --- css app2 default stylesheets
--- --- --- --- js app2 javascript
--- --- --- templates app2 templates (eg base_app.html)
--- --- --- tests app2 unit tests
--- --- static project static files - STATICFILES_DIR [7][8]
--- --- --- css project stylesheets (eg project.css)
--- --- --- images project (static, not-content) images
--- --- --- js project javascript libraries
--- --- templates project templates (base.html)
--- --- --- admin admin (base_site.html for branding admin)
--- --- wsgi-bin wsgi script dir [8]
[0] This is my preference. It isn't mandated by Django.
[1] Convenience only - not a Django setting
[2] Not used in development only in production
[3] Don't put anything here - use manage.py collectstatic instead [10]
[4] https://docs.djangoproject.com/en/dev/ref/settings/#media-root
[5] Convenience only - not a Django setting [9]
[6] https://docs.djangoproject.com/en/dev/howto/static-files/#basic-usage
[7]
https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#staticfiles-dirs
[8] http://code.google.com/p/modwsgi/wiki/InstallationInstructions
Static Files
============
Provided 'django.contrib.staticfiles' is in INSTALLED_APPS, static files
kept in two standard locations ...
- project/<app>/static (if different app static files are needed)
- project/static (actually, any directories in STATICFILES_DIRS)
... will be automatically found and served by the development server at
the URL nominated in STATIC_URL.
In production they need to be all collected and copied into the
directory root specified in STATIC_ROOT. This relies on the production
webserver (eg Apache) being configured to serve files in the STATIC_ROOT
directory at the URL nominated in STATIC_URL.
This collecting should be done via './manage.py collectstatic' just once
per fresh source deployment and then only if the static files have changed.
Static files settings:
=====================
[9]
# My preferred project path location for static files
STATICFILES_DIRS = (
os.path.join(SRC_ROOT, 'static/').replace('\\','/'),
)
if DEBUG:
i = 0
for item in STATICFILES_DIRS:
i += 1
print('STATICFILES_DIRS = %s (#%s)' % (item, i ))
[10]
# I prefer to keep STATIC_ROOT differences here rather than urls.py
if DEBUG:
STATIC_ROOT = os.path.join(PROJECT_ROOT,
'htdocs/static/').replace('\\','/')
print('STATIC_ROOT = %s %s' % (STATIC_ROOT, '(collectstatic)'))
else:
# actual staging and production webserver directory
STATIC_ROOT = '/srv/www/%s/htdocs/static/' % PROJECT
>
> Do you ran
> ./manage.py runserver
>
> or do you run under a real web server.
>
> I you run under anything else than ./manage.py runserver, then
>
> don't forget to run
> ./magage.py collectstatic
>
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home