当我更改 urlconfig 时,图像不会在 django

问题描述

当我更改 URLconf 时,我的图像不会加载到页面中。

这段代码是在页面中加载图片时,"urls.py"

urlpatterns = [
path('admin/',admin.site.urls),path('<lang>/',home_page),path('',home_redirect),path('products/',include('products.urls')),]

在此代码中未加载图像时

urlpatterns = [
path('admin/',path('<lang>/products/',]
if settings.DEBUG:
# add root static files
urlpatterns = urlpatterns + static(settings.STATIC_URL,document_root=settings.STATIC_ROOT)
# add media static files
  urlpatterns = urlpatterns + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

我必须提到我的问题不是显示 404 页面......我的页面已加载但页面中的图像未加载并显示替代文本而不是图像

在“products.urls.py”中

urlpatterns = [
path('<category>',ProductsListByCategory),path('<category>/<product_id>/<product_name>',product_detail),]

和“product_list.html”

<img src="{{ product.image.url }}"class="img-fluid img-card " alt=" 
         {{product.name }}">

我不知道解决它...

解决方法

看起来您的网址格式 '<lang>/<category>' 正在捕获您的所有媒体网址。 Django 使用第一个匹配 url 的 url 模式。更改添加媒体网址的方式:

if settings.DEBUG:
    # add root static files
    urlpatterns = static(settings.STATIC_URL,document_root=settings.STATIC_ROOT) + urlpatterns
    # add media static files
    urlpatterns = static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT) + urlpatterns

这将使您的媒体和静态 url 位于您的 urlpatterns 列表的开头,因此没有其他模式会首先捕获它们。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...