我正在使用django 1.5
我能够在生产中提供文件,因为它是在apache级别处理的.这是我的httpd.conf文件:
<VirtualHost *:80>
WSGIScriptAlias / /home/membership/membership/wsgi.py
Alias /static/ "/home/membership/static/"
<Directory /home/membership/static>
Order deny,allow
Allow from all
</Directory>
<Directory "/usr/lib/python2.6/site-packages/django/contrib/admin/static/admin">
Order deny,allow
Allow from all
</Directory>
<Directory /home/membership/membership>
<Files wsgi.py>
Order deny,allow
Satisfy Any
Allow from all
</Files>
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
这在生产中很好用,因为 Alias /static/ "/home/membership/static/"
当我尝试在我的本地开发环境中运行应用程序我不能让它为静态文件我刚刚得到一个页面没有找到404错误.我猜这是因为当我在本地开发时,请求直接进入开发服务器,因为没有使用apache.

我在/static/me.png有一个文件.
是否有某些地方我应该指定在开发中提供静态文件?
运行python manage.py collectstatic时似乎只收集管理员应用程序的静态文件.我有一个文件直接在我试图服务的/ app/static目录中.
如果您在开发期间提供静态文件
在您的settings.py文件中:
# Add it on your settings.py file
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"), # your static/ files folder
]
Run Code Online (Sandbox Code Playgroud)
例:
在你的root urls.py文件中:
# add these lines
from django.conf import settings
from django.conf.urls.static import static
# Add +static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Run Code Online (Sandbox Code Playgroud)
例:
这不适合生产使用!查看更多:https://docs.djangoproject.com/en/dev/howto/static-files/#serving-static-files-during-development
对于媒体/目录中的媒体文件:https: //docs.djangoproject.com/en/dev/howto/static-files/#serving-files-uploaded-by-a-user-during-development
| 归档时间: |
|
| 查看次数: |
15632 次 |
| 最近记录: |