在Django项目开发中,不能像正常web开发一样通过 'imgs/bg.jpg' 访问本地静态文件,需要做一些配置,才能实现静态文件的访问。
一、首先在项目根路径下新建一个static文件夹,然后在static文件夹下可以新建相应的css、imgs、js等文件夹,用于存放css、img、js等静态文件。
二、项目配置
1、打开settings.py,在底部添加:
STATIC_URL = '/static/'
STATICFILES_DIRS = (
# os.path.join(BASE_DIR, 'static')
os.path.join(os.path.dirname(__file__), '../static/').replace('\\', '/'),
)
2、打开urls.py,在 urlpatterns 中添加:(注意,如果你在blog目录下也建立了urls.py,那么就得在blog/urls.py中做修改。别忘了import settings):
url( r'^static/(?P<path>.*)$', 'django.views.static.serve',{ 'document_root': settings.STATIC_URL }),
(不过我经过实测,不加这一个,也可以完成静态文件的访问)
3、在html模板最上面添加:
{% load staticfiles %} 这句添加在html文件的最上面
然后在需要的地方按照这个格式进行调用,如:
<img src="{% static "imgs/bg.jpg" %}"/>
最后重新运行项目,img等本地静态文件就可以被django找到了,这时模板对应的页面就可以显示使用img等文件了。
------------------------------------------------------------
django static文件的引入方式
1\. 在django project中创建 static文件夹
2.settings.py中配置要在 STATIC_URL = '/static/' 下边
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
上面这个输入如果报错:Your STATICFILES_DIRS setting is not a tuple or list; "
那么就改成:STATICFILES_DIRS = [(os.path.join(BASE_DIR,'static'))]
或
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
3.前端引入
方法一、
在页面的较上处写:
{% load staticfiles %}
在 link script 等src 写 :
{%static 'xxx.css'%}
{%static 'xxx.js'%}