在生产环境中,Django{{object.image.url}在生产环境中不工作。如何在生产中显示图像/媒体?
当我在app/settings.py中设置在生产环境中,Django{{object.image.url}在生产环境中不工作。如何在生产中显示图像/媒体?,django,Django,当我在app/settings.py中设置DEBUG=False时 {{object.img.url}不工作。如何解决这个问题 当我检查它时,它的img.url获取/images/image\u name.jpg如下所示。在DEBUG=Truehttp://127.0.0.1:8000/images/image_name.jpg它显示图像。但是当我设置DEBUG=False这个http://127.0.0.1:8000/images/image_name.jpg这没有显示任何内容 我的媒体根 M
DEBUG=False
时
{{object.img.url}
不工作。如何解决这个问题
当我检查它时,它的img.url
获取/images/image\u name.jpg
如下所示。在DEBUG=True
http://127.0.0.1:8000/images/image_name.jpg
它显示图像。但是当我设置DEBUG=False
这个http://127.0.0.1:8000/images/image_name.jpg
这没有显示任何内容
我的媒体根
MEDIA_URL = '/images/'
MEDIA_ROOT = (BASE_DIR / 'static/images')
在我的URL中,我添加了
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
如何在生产中显示图像/媒体。正如django doc所说,它是: Helper函数,用于返回用于在调试中提供文件的URL模式 模式: 查看更多。因此,如果未处于
DEBUG
模式,此函数将不返回URL模式
一般来说,根据经验,Django不应提供静态内容,即
静态
或媒体
文件。其他一些,如nginx、apache等,应该在生产环境中提供静态内容。正如django doc所说,它是:
Helper函数,用于返回用于在调试中提供文件的URL模式
模式:
查看更多。因此,如果未处于DEBUG
模式,此函数将不返回URL模式
一般来说,根据经验,Django不应提供静态内容,即
静态
或媒体
文件。其他一些,如nginx、apache等,应该在生产环境中提供静态内容。以下4个设置很重要
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/
STATIC_URL = "https://xyz.abc.com/static/"
STATIC_ROOT = "/home/kcsl/web/xyz.abc.com/public_html/static/"
MEDIA_URL = "https://xyz.abc.com/media/"
MEDIA_ROOT = "/home/kcsl/web/xyz.abc.com/public_html/media/"
还可以使用collectstatic命令
$ python manage.py collectstatic
以下4个设置很重要
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/
STATIC_URL = "https://xyz.abc.com/static/"
STATIC_ROOT = "/home/kcsl/web/xyz.abc.com/public_html/static/"
MEDIA_URL = "https://xyz.abc.com/media/"
MEDIA_ROOT = "/home/kcsl/web/xyz.abc.com/public_html/media/"
还可以使用collectstatic命令
$ python manage.py collectstatic
谢谢{%static object.img.url%}似乎正在工作。谢谢。{%static object.img.url%}似乎正在工作。