在Django中设置静态文件



我在开发服务器上的Django项目中设置静态文件时遇到问题。我使用的是Django-1.6.1和Python 2.7.5+.

我遵循了这个链接中的说明:管理静态文件(CSS,图像)

因此,我在INSTALLED_APPS 中添加了django.contrib.staticfiles

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'BlogContent',
)

我设置了STATIC_URL

STATIC_URL = '/static/'

我还将我的urls.py修改为:

urlpatterns = [           
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', home_view ),
    url(r'^about/$', about_view )
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

在模板中,我使用这个标签:

{% load staticfiles %}
<img src="{% static "elo.jpg" %}"/>

所有文件都在project_root/static/中,运行后服务器我收到了这个:

"GET /static/elo.jpg HTTP/1.1" 404 1625

你有什么解决办法吗?提前感谢您的帮助。

Django本身不提供文件;它将该作业留给您选择的任何Web服务器。因此移除CCD_ 2中的CCD_。使用Apache2存储静态或媒体文件

https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#serving-文件

在您的Apache *.conf文件(Apache 2.4)中

<VirtualHost *:80>
        ServerName example.com
        ServerAdmin example@example.com
        Alias /media/ /home/tu/blog/media/
        Alias /static/ /home/tu/blog/collected_static/
        <Directory /home/tu/blog/media>
                Require all granted
        </Directory>
        <Directory /home/tu/blog/collected_static>
                Require all granted
        </Directory>
        WSGIScriptAlias / /home/tu/blog/blog/wsgi.py
        <Directory /home/tu/blog/blog>
        <Files wsgi.py>
                Require all granted
        </Files>
        </Directory>
</VirtualHost>

如果您使用Apache 2.2,请使用

Order allow,deny
Allow from all

而不是

Require all granted

注意:您可以运行apachectl -v来查看您的Apache2版本

这里有一个nginx配置的spinet,用于提供静态文件&名为APP:的应用程序的代理

http {
…
    server {
        …
        location /static/ {
            autoindex on;
            alias /usr/share/nginx/html/static/;
        }
        location /APP {
            return 301 /APP/;
        }
        location /APP/ {
            rewrite ^/intranet(.*) /$1 break; 
            proxy_redirect off;
            proxy_pass http://127.0.0.1:8000;
        }
    }
}

请注意,我使用gunicorn在localhost:8000上运行我的应用程序,但我使用http://localhost/APP连接到它。

相关内容

  • 没有找到相关文章

最新更新