一直很糾結的一個問題,網絡上也有不少方案,但總感受不完美.
javascript
以前的方案css
1 . 在setting.py中 STATIC_ROOT = 'static/' STATIC_URL = 'static/' 2. 在模板頁面中 <link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap.css"> <script type="text/javascript" src="{{ STATIC_URL }}js/bootstrap.js"></script> 3. 在urls.py的配置中 from django.conf.urls.static import static urlpatterns = patterns('', url(r'^admin/', include(admin.site.urls)), (r'^$', latest_books), ) + (static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)) 4. 在views.py對應的輸出視圖中 return render_to_response('index.html', { 'book_list': book_list, 'STATIC_URL': STATIC_URL, })
雖然能解決必定問題可是每一回都須要在response中添加STATIC_URL,很是煩躁html
結合最近的項目部署以及開發深刻,總結完美方案一套java
1. 在settings.py中 STATIC_URL = '/static/' STATIC_ROOT = '/static/' STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static').replace('\\','/'), ) 2. 在url.py中(總路由 即全局路由出口) urlpatterns = patterns('', url(r'^admin/', include(admin.site.urls)), url(r'^app/', include('app.urls')), ) + (static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)) 3. 在模板視圖中 <link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap.css"> <script type="text/javascript" src="{{ STATIC_URL }}js/bootstrap.js"></script>
這樣在views中的每一個視圖方法就不須要重複response STATIC_URL了django