django在静态子文件夹中找不到静态文件

时间:2014-06-10 05:11:39

标签: python django static

django 1.6.5

我的静态文件位于static的子文件夹下。

djangoprj
    djangoprj
        settings.py
        urls.py
        wsgi.py
        __init__.py
    static
        myapp
            mystaticfiles
            ...
    apps
        myapp
            ...
            templates
                *.html
            ...

在我的模板文件中,我将静态文件链接为完整路径。

<img src="/static/myapp/images/my.png" />

但是找不到那些文件。我收到404错误。

将settings.py更改为

STATIC='/static/myapp/'

我可以获取那些静态文件。但我不想这样做。当STATIC='/static/'时,为什么不加油?是否有一些简单的方法来解决这个问题而不是执行命令manaully,例如'collectstatic'?我已将我的静态文件放在static文件夹中,并且我在模板文件中使用了完整路径。为什么不起作用?提前谢谢。

2 个答案:

答案 0 :(得分:2)

现在您将静态文件夹切换到'/static/myapp/'

您应在标记中使用<img src="/static/images/my.png" />

通常,您应该使用{% static %}模板标记执行此操作,如下所示(假设为STATIC='/static/')。

{% load staticfiles %}

<img src="{% static 'images/myapp/my.png' %}" />

了解详情,请参阅教程https://docs.djangoproject.com/en/1.6/intro/tutorial06/

我建议你阅读https://docs.djangoproject.com/en/1.6/

中的所有教程(第1部分 - 第6部分)

这样你就可以深入了解基础。

答案 1 :(得分:2)

您也可以在这些答案中找到一些帮助

  1. static files problem
  2. STATIC_URL Not Working
  3. 在我的配置中,我有一个目录结构,其中静态文件在我的应用程序中,如此

    djangoprj
        djangoprj
            settings.py
            urls.py
            wsgi.py
            __init__.py
        apps
            myapp
                ...
                templates
                    *.html
                static   
                    myapp
                       mystaticfiles
                ...
                ...
    

    在设置中

    INSTALLED_APPS = (
        ...
        'django.contrib.staticfiles',
        ...
    )
    
    STATIC_URL = '/static/'
    

    在模板中我使用'static'标签

    {% load staticfiles %}
    <link rel="stylesheet" type="text/css" href="{% static 'posts/style.css' %}" />
    

    我希望这可以帮到你