如何在 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_URLMEDIA_ROOT 用于用户上传(FileFields 和 ImageFields 在您的模型上)。它应该是它自己的文件夹; “媒体”很常见。

    STATIC_URLSTATIC_ROOT 用于您的静态资源。它也应该是它自己的文件夹; “静态”很常见。

    不要实际上在STATIC_ROOT 中放入任何内容。此目录仅用于生产中collectstatic 管理命令的输出。

    您的静态资源应该放在您应用的“静态”文件夹中一个全新的不同目录(即不是MEDIA_ROOTSTATIC_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 可以访问端点