我在开发服务器上的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
你有什么解决办法吗?提前感谢您的帮助。
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
连接到它。