Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
216 views
in Technique[技术] by (71.8m points)

python - Django staticfiles app help

I've having a little issue with Django's staticfiles app.

I have added

'django.contrib.staticfiles',

to my INSTALLED_APPS and have added

STATIC_URL = '/static/'
STATIC_ROOT = '/Users/kevdotbadger/django/mylook/static/'

to my settings.py file.

All my static files are located within the STATIC_ROOT folder on my Mac.

Now, within my template I use

{{ STATIC_URL }}

which correctly renders to /static/.

However

{{ STATIC_URL }}css/style.css

result in a 404 error. I'm using the 'runserver' command as the server.

Is there something I'm missing?

question from:https://stackoverflow.com/questions/4565935/django-staticfiles-app-help

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I implore you to read the howto docs here: http://docs.djangoproject.com/en/dev/howto/static-files/

In short: STATIC_ROOT is only used if you call the collectstatic manangement command. It's not needed to add the directory to the STATICFILES_DIRS setting to serve your static files!

During development (when the automatic serving view is used) staticfiles will automatically look for static files in various locations (because you call its "serve" view with a path to a static file). For this search it'll use the so called "finders" (as defined in the STATICFILES_FINDERS setting).

  1. One of the default finders is the AppDirectoriesFinder, which will look in the "/static/" directory of each of the apps of yours INSTALLED_APPS setting.

  2. Another default finder is the FileSystemFinder, which will look in directories you specify in the STATICFILES_DIRS setting.

BTW, both these search patterns are similar to how template loading works.

The same technique will be used when running the collectstatic command, except that it now will collect the files from the various locations (using the same finders as above), putting the found files into STATIC_ROOT, ready for deployment.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...