python - Django 1.4 可以提供媒体文件服务,但不是静态的

标签 python django python-2.7 http-status-code-404 django-staticfiles

我正在使用 Django 1.4,由于某种原因,我能够提供媒体文件,但不能提供静态文件...... 这是我的代码: 设置:

MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/static/admin/'

url.py:

(r'^media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT}),
                    (r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.STATIC_ROOT}),

base.html:

<link href="{{ STATIC_URL }}css/bootstrap.css" rel="stylesheet">
<link href="{{ MEDIA_URL }}css/bootstrap-colorpicker.css" rel="stylesheet">

我收到 404 http not found...我做错了什么?我确实在项目中的媒体旁边创建了静态文件夹

http://mysite.com:8000/static/css/bootstrap.css

最佳答案

您的静态文件夹应该位于您使用它的一个应用程序下。

例如,我有一个名为 my_project 的项目和一个名为 my_app 的应用程序,我在 my_app 中使用了一些静态文件,所以我将它们位于 ~/project_path/my_project/my_app/static

注意:my_app 必须位于INSTALLED_APPS 中。请参阅STATICFILES_FINDERS documentation .

编辑:

作为最佳实践,您应该在一个应用程序(主应用程序)中拥有一个全局静态文件夹,例如静态文件夹如何包含 html 模板基本资源,如 jquery、bootstrap、全局样式。

对于仅一个应用程序需要的静态文件,例如应用程序 foo,这些文件应位于 foo/static 文件夹下

关于python - Django 1.4 可以提供媒体文件服务,但不是静态的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16650940/

相关文章:

python - 为什么不能在 Python 中重新导入?

python - 模块 'importlib._bootstrap' 没有属性 '_w_long'

javascript - Django/Javascript 交互中 POST 无响应

python - 使 "coverage report"只显示当前目录中的文件?

python - 使用 Python 字典在 Python 中合并 CSV 文件

javascript - 在 django-socketio 中获取用户

python - 我可以将单个 Python 文件部署(更新)到现有的 Google App Engine 应用程序吗?

python - Django 查询上的 value() 方法后的计数和最大值

macos - 导入错误 : No module named pymysql on Mac OS

python - 与另一个进程的标准输入/输出交互