初学django,在静态文件访问上折腾了好长时间,开发环境。
目录结构
ojweb2 |-media |-static |-|-js | |-css |-templates |-|...(template html files) |-web |-|-__init__.py | |-models.py | |-views.py |-__init.py__ |-settings.py |-urls.py |-wsgi.py
settings.py中static变量的设置:
STATIC_ROOT = os.path.join(os.path.dirname(__file__), 'static') STATIC_URL = '/static/'
模板文件中的引用方式
<script src="/static/js/jquery.js"></script> <link href="/static/css/doc.css" rel="stylesheet" type="text/css">
尝试了以下方法:
1.有说开发环境的静态文件由开发服务器负责,不用配置,但是不加任何配置访问不了
2.urls.py中urlpatterns的设置
url(r'^static/(?P<path>.*)$','django.views.static.serve',{'document_root':settings.STATIC_ROOT}, name='static'),
这种方法也不成功
3.
if settings.DEBUG is False: urlpatterns += patterns('', url(r'^static/(?P<path>.*)$', 'django.views.static.serve', { 'document_root': settings.STATIC_ROOT, }), )
把debug设为False,能成功访问,但是开发时不能吧debug设为False吧。
4.django的文档中说把static文件夹放在相应的app下,把static文件夹放到web下,不用其他配置,可以正常访问,但是static中的文件是想整个project共用的,所以这种方法也解决不了问题。
请问大家开发环境下采用怎样的设置才可以访问如上所说目录结构下的静态文件?
url.py
from django.contrib.staticfiles.urls import staticfiles_urlpatterns urlpatterns += staticfiles_urlpatterns()
settings.py
STATIC_DIRS = ( #your dev static file path )
templates
{{ STATIC_URL }}
这样就可以访问你的静态文件了。具体可以参考一下django static files
STATIC_ROOT = os.path.join(os.path.dirname(__file__), 'static')
to
DIR_ROOT = os.path.abspath(os.path.dirname(__file__))
STATIC_ROOT = os.path.join(DIR_ROOT, 'static')
用绝对路径试试
也可以看看新版的 django 设置:https://docs.djangoproject.com/en/dev...
解决了。
把ojweb2
添加到INSTALLED_APPS
,就可以访问了。谢谢ls两位~