Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在生产环境中,Django{{object.image.url}在生产环境中不工作。如何在生产中显示图像/媒体?_Django - Fatal编程技术网

在生产环境中,Django{{object.image.url}在生产环境中不工作。如何在生产中显示图像/媒体?

在生产环境中,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

当我在app/settings.py中设置
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%}似乎正在工作。