当前位置 博文首页 > Django静态资源URL STATIC_ROOT的配置方法

    Django静态资源URL STATIC_ROOT的配置方法

    作者:admin 时间:2021-07-16 18:57

    缘由

      新手学习 Django 当配置好 HTML 页面后,就需要使用一些静态资源,如图片,JS 文件,CSS 样式等,但是 Django 里面使用这些资源并不是直接引用一下就好,还要配置路径即 STATIC_URL 如果这个配置不好的话,请求这些静态资源将返回 HTTP 404 。

    经验传授

    1. 输出 settings.py 文件里面的 STATIC_URL 到HTML页面,看一下物理路径指向了哪些,通常是不是跑出根目录的。这里给个DEMO:

    复制代码 代码如下:

    def home(request):
        t = get_template("index.html")
        html = t.render(Context({
            "template_dir":settings.TEMPLATE_DIRS[0],
            "title":"Home",
            "static_dir":settings.STATIC_ROOT}))
        return HttpResponse(html)

    这样访问的HTML页面就可以看到这些路径了。

    2. 配置 STATIC_ROOT 变量

    复制代码 代码如下:

    STATIC_ROOT = os.path.join(os.path.dirname(__file__), '..', 'templates/content').replace('\\','/')

    可能通过调整第二个和第三个参数来将路径修改正确。(多调试)

    3. 在 urls.py 文件中配置 urlpatterns 变量(主要看高亮这一行):

    复制代码 代码如下:

    urlpatterns = patterns('',
        url(r'^$', home),
        url(r'^static/(?P<path>.*)$','django.views.static.serve',{'document_root':settings.STATIC_ROOT}),
    )

    4. 测试以上配置:

    复制代码 代码如下:

    <head>
        <meta charset="UTF-8"/>
        <title>{{ title }} - Oger</title>
        <script type="text/javascript" src="/static/scripts/jquery-1.11.0.min.js"></script>
    </head>

    <head>
        <meta charset="UTF-8"/>
        <title>{{ title }} - Oger</title>
        {% load staticfiles %}
        <script type="text/javascript" src="{% static 'scripts/jquery-1.11.0.min.js' %}"></script>
    </head>
    [/code]

    这两种用法都是可以的。

    用 Django 开发Web站点还是很方便的。继续学习中...

    jsjbwy