管理Django1.9靜態文件static

網站一般須要增長圖片、JavaScript、或者CSS等文件提供服務。在Django中,咱們把這些文件稱爲「靜態文件」(static files)。Django提供django.contrib.staticfiles(Python目錄)來幫助你管理他們。 下面就來告訴你如何使用它。javascript

配置靜態文件css

1.肯定django.contrib.staticfiles 在你的INSTALLED_APPShtml

2.在settings.py中定義你STATIC_URL,舉個例子:java

STATIC_URL = '/static/'python

3.在你的項目中,static文件的目錄以下圖所示。舉個例子:jquery

即yourapp/static/yourapp/yourstaticfilesweb

4.在你的html中調用,以下圖所示:django

官方文檔json

Managing static files (e.g. images, JavaScript, CSS)

Websites generally need to serve additional files such as images, JavaScript, or CSS. In Django, we refer to these files as 「static files」. Django provides django.contrib.staticfiles to help you manage them.bootstrap

This page describes how you can serve these static files.

Configuring static files

  1. Make sure that django.contrib.staticfiles is included in your INSTALLED_APPS  

  2. In your settings file, define STATIC_UR, for example:

    STATIC_URL = '/static/'
  3. In your templates, either hardcode the url like /static/my_app/myexample.jpg or, preferably, use the static template tag to build the URL for the given relative path by using the configured STATICFILES_STORAGE storage (this makes it much easier when you want to switch to a content delivery network (CDN) for serving static files).

    {% load staticfiles %}
    <img src="{% static "my_app/myexample.jpg" %}" alt="My image"/>
  4. Store your static files in a folder called static in your app. For example my_app/static/my_app/myimage.jpg.

 

具體設置:

setting:

ALLOWED_HOSTS = ['*']
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(os.path.dirname(__file__),'static')
# Additional locations of static files
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(os.path.dirname(__file__), '../static/').replace('\\','/'),
)

view.py:

import json
import os
from django.http import StreamingHttpResponse, HttpResponse
from django.shortcuts import render
from dwebsocket.decorators import accept_websocket
def gotoIndex(request):
    return render(request, 'index.html')

clients = []
@accept_websocket
def echo(request):
    if request.is_websocket:
        try:
            clients.append(request.websocket)
            for message in request.websocket:
                print message
                me=eval(message)
                print type(me)
                print me["name"]
                if not message:
                    break
                for client in clients:
                    print client
                    client.send(message)
        finally:
            clients.remove(request.websocket)

urls.py:

from django.conf.urls import url
from django.contrib import admin
from HelloWorld.views import gotoIndex,echo
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.contrib import staticfiles
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/$', gotoIndex, name='index'),
    url(r'^echo$', echo,name='echo'),
]
urlpatterns += staticfiles_urlpatterns()

index.html:

<script type="text/javascript" src="../static/js/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="../static/js/bootstrap.min.js"></script>
<script type="text/javascript" src="../static/js/echarts.min.js"></script>
{% load staticfiles %}
<link href="{% static 'css/bootstrap-theme.min.css' %}" rel="stylesheet" type="text/css">
<link href="{% static 'css/bootstrap.css' %}" rel="stylesheet" type="text/css">
<link href="{% static 'css/index.css' %}" rel="stylesheet" type="text/css">

文件結構:

相關文章
相關標籤/搜索