在Django項目開發(fā)中,不能像正常web開發(fā)一樣通過 'imgs/bg.jpg' 訪問本地靜態(tài)文件,需要做一些配置,才能實現(xiàn)靜態(tài)文件的訪問。
一、首先在項目根路徑下新建一個static文件夾,然后在static文件夾下可以新建相應(yīng)的css、imgs、js等文件夾,用于存放css、img、js等靜態(tài)文件。
二、項目配置
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 }),
(不過我經(jīng)過實測,不加這一個,也可以完成靜態(tài)文件的訪問)
3、在html模板最上面添加:
{% load staticfiles %} 這句添加在html文件的最上面
然后在需要的地方按照這個格式進(jìn)行調(diào)用,如:
<img src="{% static "imgs/bg.jpg" %}"/>
最后重新運(yùn)行項目,img等本地靜態(tài)文件就可以被django找到了,這時模板對應(yīng)的頁面就可以顯示使用img等文件了。
------------------------------------------------------------
django static文件的引入方式
1\. 在django project中創(chuàng)建 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'%}