http://stackoverflow.com/questions/7650893/serving-static-files-on-my-own-server/7651021#7651021
On Oct 4, 4:14 am, Mike Dewhirst <mi...@dewhirst.com.au> wrote:
> 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/#static...
> [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.
No comments:
Post a Comment