可能重复:
Trying to serve django static files on development server - not found
我刚进入Python和django的世界,我无法使用STATIC_URL设置我的URL,我目前正在使用django 1.4进行本地开发。我阅读了django static file doc并且似乎添加了所有必需的内容,但仍然出现404错误。我已经阅读了与此相关的其他问答,并尝试了各种各样的事情,但无法使其发挥作用。
我从控制台获得的错误
http://localhost:8000/blog/static/js/src/models/myfile.js 404 (NOT FOUND)
我的index.html页面是其他页面扩展的主页面,其中包含以下脚本:
<script src="{{ STATIC_URL }}/js/src/models/myfile.js"></script>
在浏览了其他问题和答案后,我尝试通过添加来编辑我的视图,因为我的archive.html正在渲染数据:
from django.template import RequestContext
...
return render_to_response('archive.html', {'categories' : resultSet, 'data': queryData}, context_instance=RequestContext(request))
我的目录结构 -
mysite
|-- manage.py
|-- mysite
|-- __init__.py
|-- settings.py
|-- urls.py
|-- wsgi.py
|-- blog
|-- __init__.py
|-- models.py
|-- tests.py
|-- views.py
|-- temapltes
|-- archive.html
|-- base.html
|-- static
|-- js
|-- myfile.js
我的设置.py
MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = (
'C:/Python27/Scripts/mysite/blog/static',
# A Bit confused on the path here
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
TEMPLATE_CONTEXT_PROCESSORS = (
"django.core.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
'django.core.context_processors.static',
)
TEMPLATE_DIRS = ( )
INSTALLED_APPS = (
#..
'django.contrib.staticfiles',
'blog',
)
我认为我拥有所需的一切,但仍然没有运气。
我哪里出错,我对设置“STATICFILES_DIRS”路径感到有点困惑,我怎样才能在本地机器上运行
答案 0 :(得分:3)
您应该更改目录结构:
应用级别
/blog/static/blog/js
项目级别:
/static/js
同样在Django 1.4中,您可以使用静态标记:
{% load static %}
<img src="{% static 'js/abacadabra.js' %}" />
最后但并非最不重要的是,您可能希望避免硬编码路径,因此请更改:
STATICFILES_DIRS = (
'C:/Python27/Scripts/mysite/blog/static',
)
为:
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, 'static'),
)