如何在 django 中启用 /static/css URL 启用
Posted
技术标签:
【中文标题】如何在 django 中启用 /static/css URL 启用【英文标题】:how to enable /static/css URL enable in django 【发布时间】:2012-03-24 10:29:55 【问题描述】:当我使用 MEDIA_URL 或 STATIC_URL 指向 /static/ 时,当前将 MEDIA_URL 设置为 /static/ 并在 CSS 文件的路径中使用它,例如:
<link rel="stylesheet" type="text/css" href="MEDIA_URLcss/css.css" />
它指向/static/css.css
,但尝试http://localhost/static/css.css
会出现404 错误。
我有设置:
.....
MEDIA_ROOT = ''
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
MEDIA_URL = '/static/'
# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = 'D:/programming/django_projects/ecomstore/'
.....
在 urls.py 中,我指向这样的静态:
url(r'^static/(?P<path>.*)$', 'django.views.static.serve',
'document_root':'D:/programming/django_projects/ecomstore/'
那么问题出在哪里?为什么显示 404,我需要为静态文件创建一些视图吗?还是我的设置或 urls.py 中还有其他问题?任何回复都将不胜感激,因为我是 django 的新手。
提前致谢
【问题讨论】:
【参考方案1】:您需要更仔细地重新阅读文档:https://docs.djangoproject.com/en/dev/howto/static-files/
这里有一些注意事项:
MEDIA_URL
和 MEDIA_ROOT
用于用户上传(FileField
s 和 ImageField
s 在您的模型上)。它应该是它自己的文件夹; “媒体”很常见。
STATIC_URL
和 STATIC_ROOT
用于您的静态资源。它也应该是它自己的文件夹; “静态”很常见。
不要实际上在STATIC_ROOT
中放入任何内容。此目录仅用于生产中collectstatic
管理命令的输出。
您的静态资源应该放在您应用的“静态”文件夹中或一个全新的不同目录(即不是MEDIA_ROOT
或STATIC_ROOT
)。然后将该目录的路径添加到STATICFILES_DIRS
。
不要在 urls.py 中添加任何内容。在开发过程中,Django 将自动为您的应用程序“静态”目录或STATICFILES_DIRS
中的任何目录中的任何内容提供服务。在生产中,您的网络服务器将负责提供这些文件。
【讨论】:
以上是关于如何在 django 中启用 /static/css URL 启用的主要内容,如果未能解决你的问题,请参考以下文章
如何在 python 中启用 Django shell 中的历史记录
如何在我的 Django REST api 上调试启用 CORS
如何在 Django Python 中使用 PostgreSQL 为 SQLAlchemy 连接池设置方言?需要启用预 ping 功能
在 Python Django 中启用调试时,如何仅关闭 SqlAlchemy 数据库池的日志记录?
如何创建一个 Django 自定义字段来存储 MYSQL DATETIME(6) 并在 Django/MySQL 中启用小数秒(毫秒或微秒)?
Wagtail、CORS 和 Django-Cors-Headers。如何启用 CORS 以便 AXIOS 可以访问端点