Guillaume,

Here are some settings that you should compare to see if your project is set up correctly:

In settings.py

# define the root directory to your project - this is just a convenience so everything is referenced correctly.
PROJECT_PATH = os.path.abspath(os.path.dirname(__file__))

# the directory for your static files will be a sub-directory in your project
STATIC_ROOT = os.path.join(PROJECT_PATH, "static")
STATIC_URL = '/static/'

# this allows you to use {{ STATIC_URL}} in your templates so you don't have to hardwire the path
TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'django.core.context_processors.static',
    ....
)

# Django searches all the installed apps for ./static sub-directories so make sure you include your own # application so the files can be found - this is the most common mistake I make.
INSTALLED_APPS = (
    ...
    'django.contrib.staticfiles',
    ...
    'my-app'
)

Finally in urls.py make sure django is serving up the static files correctly - this is only for your local devleopment machine so you can find out if everything is working (for production you should configure your web server to serve up the files):

if settings.DEBUG:
    urlpatterns += patterns('django.views.static',
        (r'^%s(?P<path>.*)$' % settings.STATIC_URL[1:] , 'serve',
         {'document_root': settings.STATIC_ROOT}),
    ...
    )

This should get everything working please let me know if it does not.

Regards,

Stuart MacKay
Lisbon, Portugal


Hi All,

It's been a couple of days since I last wrote and no response so I'm trying again (see below). Please help if you can; without being able to link to external static files I really can't do anything else with my site. CSS is the very least of my concerns--worst case I can include that info in each HTML file--but I need to be able to use some basic javascript for my site and right now, because of this issue, I can't even do that. Is there anyone who could help me troubleshoot this? Anyone??

thanks,
Guillaume

On Wed, Aug 3, 2011 at 12:20 PM, Guillaume Chorn <guillaumech...@gmail.com <mailto:guillaumech...@gmail.com>> wrote:

    Ok, so I did use quotes in my link, and I changed my STATIC_URL
    setting (in settings.py) from '/static/' to
    'http://127.0.0.1:8000/static/' (I am currently using the built-in
    development server at this address), but still no luck.

I'm not sure exactly what you mean by my "staticfiles settings." (Sorry, once again I'm a total beginner so please bear with me.) My current settings related to static files in 'settings.py' are
    as follows:

    STATIC_ROOT = ''
    STATIC_URL = 'http://127.0.0.1:8000/static/'
    ADMIN_MEDIA_PREFIX = '/static/admin/'
    STATICFILES_DIRS =
    ('/Users/guillaumechorn/Documents/website/mainapp/static')

    STATICFILES_FINDERS = (
        'django.contrib.staticfiles.finders.FileSystemFinder',
        'django.contrib.staticfiles.finders.AppDirectoriesFinder'
    )

    Below are the full contents of my urls.py file:

    from django.conf.urls.defaults import *

    from django.contrib.staticfiles.urls import staticfiles_urlpatterns
    from django.contrib import admin
    admin.autodiscover()

    urlpatterns = patterns('',
        (r'^home/$','mainapp.views.homepage'),
        (r'^mainapp/$','mainapp.views.index'),
        (r'^mainapp/(?P<company_id>\d+)/$', 'mainapp.views.detail'),
        (r'^products/$','mainapp.views.productindex'),
(r'^products/(?P<product_id>\d+)/$','mainapp.views.productdetail'),
        (r'^news/$','mainapp.views.news'),
        (r'^events/(?P<event_id>\d+)/$','mainapp.views.eventdetail'),
        (r'^partners/$','mainapp.views.partners'),
        (r'^admin/', include(admin.site.urls)),
    )
    urlpatterns += staticfiles_urlpatterns()

    Once again, I'm using the following to link to my CSS file:

    <link rel="stylesheet" type="text/css" href='{{ STATIC_URL
    }}stylesheet.css' />

    Am I still missing something?  Did I enter in anything incorrectly?

    thanks,
    Guillaume


    On Tue, Aug 2, 2011 at 6:06 PM, Thomas Orozco
    <g.orozco.tho...@gmail.com <mailto:g.orozco.tho...@gmail.com>> wrote:

        Last thing, I made a typo, the address you could use should
        start with http, like: http://127.0.0.1/static/

        Le 2 août 2011 12:01, "Thomas Orozco"
        <g.orozco.tho...@gmail.com <mailto:g.orozco.tho...@gmail.com>>
        a écrit :

        > A little detail, but you never know: you should put some ' '
        in your link.
        > Like this :
        >
        > <link rel="stylesheet" type="text/css" href='{{ STATIC_
        > URL }}stylesheet.css' />
        >
        >
        > If there are spaces in your path, this could cause the
        lookup to fail.
        >
        > And even if that's not the case, don't rely on the user's
        browser to fix
        > coding mistakes.
        > Le 2 août 2011 10:28, "Guillaume Chorn"
        <guillaumech...@gmail.com <mailto:guillaumech...@gmail.com>> a
        écrit :
        >> Thomas and Lokesh,
        >>
        >> Thanks very much for your help. I've modified the link in
        my HTML file to
        >> be:
        >>
        >> <link rel="stylesheet" type="text/css" href={{ STATIC_URL
        }}stylesheet.css
        >> />
        >>
        >> where "stylesheet" is the name of the CSS file, and this
        file is located
        >> inside the directory listed under STATIC_DIRS in my
        settings.py file. As
        >> mentioned in my prior email, I also already have STATIC_URL
        = '/static/'
        > in
        >> my settings.py file, and I have the correct methods listed
        under
        >> STATICFILES_FINDERS.
        >>
        >> But it is still not working. Do I have a syntax error
        somewhere? Or am I
        >> still missing something in another file?
        >>
        >> thanks,
        >> Guillaume
        >>
        >> On Mon, Aug 1, 2011 at 6:45 PM, Thomas Orozco
        <g.orozco.tho...@gmail.com <mailto:g.orozco.tho...@gmail.com>
        >>wrote:
        >>
        >>> If your css file is locatedr in your staticfiles dir, you
        should use
        >>> something such as {{ STATIC_URL }}main.css, assuming your
        CSS file is
        > called
        >>> main and is located in one of the STATIC_DIRS.
        >>>
        >>> Using staticfiles_dirs in a template makes no sense. Not
        only your are
        >>> passing a parameter that has to do with your system
        configuration and not
        >>> your urls, but you are also using a directory instead of a
        file.
        >>>
        >>> In short, it is the static_url parameter that should be
        passed to form a
        >>> URL.
        >>> Le 1 août 2011 12:17, "Gchorn" <guillaumech...@gmail.com
        <mailto:guillaumech...@gmail.com>> a écrit :
        >>>
        >>> > Hello All,
        >>> >
        >>> > I'm using Django to develop a website, and I'm having
        trouble getting
        >>> > it to see my static files. I've looked through Django's
        static file
        >>> > documentation and the steps I've taken to get Django to
        see my files
        >>> > (using a CSS file as an example) are as follows:
        >>> >
        >>> > First, I created a folder called "static" inside the
        main app folder
        >>> > for this project. Then, I added "/static/" to the
        STATIC_URLS section
        >>> > of the settings.py file, and I also added the full path
        to my CSS file
        >>> > under the STATICFILES_DIRS section of settings.py.
        >>> >
        >>> > Then I added the line:
        >>> >
        >>> > from django.template import RequestContext, loader
        >>> >
        >>> > As well as "context_instance= RequestContext(request)"
        as a third
        >>> > argument to the "return render_to_response()" call.
        >>> >
        >>> > Finally, in my url.py file, I added this line at the top:
        >>> >
        >>> > from django.contrib.staticfiles.urls import
        staticfiles_urlpatterns
        >>> >
        >>> > And this line at the bottom (separate from the initial
        "urlpatterns =
        >>> > patterns()" call):
        >>> >
        >>> > urlpatterns += staticfiles_urlpatterns()
        >>> >
        >>> > In my HTML/Django template, I added the following link
        to my CSS file:
        >>> >
        >>> > <link rel="stylesheet" type="text/css" href={{
        STATIC_DIRS }} />
        >>> >
        >>> > But then after all of this, when I perform a "python
        manage.py
        >>> > runserver" to preview the website, Django still does not
        appear to
        >>> > find the external CSS file. I must still be missing
        something but I'm
        >>> > not sure what--does anyone know???
        >>> >
        >>> > I'm sure I'm missing something very basic but I'm a
        total beginner so
        >>> > please be patient with me, I probably need a lot of very
        specific
        >>> > instructions...
        >>> >
        >>> > thanks,
        >>> > Guillaume
        >>> >
        >>> > --
        >>> > 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
        <mailto:django-users@googlegroups.com>.
        >>> > To unsubscribe from this group, send email to
        >>> django-users+unsubscr...@googlegroups.com
        <mailto:django-users%2bunsubscr...@googlegroups.com>.
        >>> > For more options, visit this group at
        >>> http://groups.google.com/group/django-users?hl=en.
        >>> >
        >>>
        >>> --
        >>> 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
        <mailto:django-users@googlegroups.com>.
        >>> To unsubscribe from this group, send email to
        >>> django-users+unsubscr...@googlegroups.com
        <mailto:django-users%2bunsubscr...@googlegroups.com>.
        >>> For more options, visit this group at
        >>> http://groups.google.com/group/django-users?hl=en.
        >>>
        >>
        >> --
        >> 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
        <mailto:django-users@googlegroups.com>.
        >> To unsubscribe from this group, send email to
        > django-users+unsubscr...@googlegroups.com
        <mailto:django-users%2bunsubscr...@googlegroups.com>.
        >> For more options, visit this group at
        > http://groups.google.com/group/django-users?hl=en.
        >>
-- 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
        <mailto:django-users@googlegroups.com>.
        To unsubscribe from this group, send email to
        django-users+unsubscr...@googlegroups.com
        <mailto:django-users%2bunsubscr...@googlegroups.com>.
        For more options, visit this group at
        http://groups.google.com/group/django-users?hl=en.



--
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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

--
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+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to