Django靜態文件輸出

一直很糾結的一個問題,網絡上也有不少方案,但總感受不完美.
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

相關文章
相關標籤/搜索