【发布时间】:2022-06-12 03:43:15
【问题描述】:
如何动态访问Django的settings.py文件中的域名URL? (即“http://localhost:8000”)
我在开发过程中尝试在互联网不可用时覆盖包 CDN,并希望指向 static 文件目录中的本地文件。虽然 os.path.join(BASE_DIR, "path/to/local.file") 应该可以工作,但它取决于哪个 app/url(即“http://localhost:8000/app/static/css/ bootstrap.min.css
"),而不仅仅是将静态文件位置附加到带有./manage.py runserver 0:8000 的起始服务器的主域(即“http://localhost:8000/static/css/bootstrap.min.css”)。
注意事项:
- 因为这是在
settings.py中,所以我无法加载任何应用程序或reverse因为错误*** django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. - 我不在模板中,所以无法使用
staticurl - 静态定义它不会在通过
./manage.py runserver 0:8000启动时允许不同的端口加载 -
settings.py基本上是一个 python 模块,但是如何获取其中的域呢?
基本上在settings.py文件中:
# If in local dev
if "RDS_DB_NAME" not in os.environ:
# the setting for the package I am pointing to a local version
BOOTSTRAP5 = {
"css_url": {
### dynamically get domain here ###
# "href": os.path.join(LOCAL_DIR, "static/css/bootstrap.min.css"),
"href": "static/css/bootstrap.min.css",
}
【问题讨论】:
标签: python django development-environment django-settings