0

我的 Django 应用程序从 media_url 导入图像,然后它转到下一页并显示图像并返回到第一页,然后导入新图像并删除旧图像。问题是在第一个循环中一切都很好,在第二个循环中,似乎 html 显示的是旧图像而不是新图像。如何在 html 中应用重新加载。这是代码的一部分:

设置.py:

 MEDIA_ROOT = 'media//' # I test the MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
 MEDIA_URL = 'media//'

视图.py:

 def scraping(request):
     ....
     template_name = "scraping.html"
     response2 = {'media_root': Config.MEDIA_ROOT, 'media_url': Config.MEDIA_URL}
     return render(request, template_name, response2)

抓取.html

  <img src='{{media_url}}/pic.jpg//'> # I also tried {{media_url}}pic.jpg 
                                                     {{media_url}}/pic.jpg/
                                                     {{media_url}}//pic.jpg//
                                                     
4

3 回答 3

0

你可以试试下面的代码:

设置.py

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'media')
于 2020-10-28T08:17:18.053 回答
0

好吧,我还没有得到任何答案,但我意识到了一些事情。首先,我将媒体目录更改为静态。这里是:

抓取.html

<img src='{{static_url}}/' \>
<img src='{{static_url}}//' \>
<img src='{{static_url}}///' \>

每次我必须在 src 中添加一个“/”来重新加载我的图像,就像现在一样。如果我在刷新后删除一个“/”,它将转到上一个图像。我通过替换“/”和“\”在设置、视图和 html 中玩了很多,但我不知道为什么会这样

于 2020-10-29T19:53:15.963 回答
0

好吧,我没有为我的问题找到任何答案,但我绕过了这个问题解决了我的问题。在以前的版本中,我尝试导入一个图像,将其重命名为 pic.jpg 并在 html 文件中调用它。这导致网络向我展示了所有预先删除的 pic.jpg。现在,我将所有导入的图像重命名为特定名称(按 date.now()),这有助于 html 不会被文件的相似名称混淆。但是我仍然不知道为什么即使源文件的名称相同,html文件也不会刷新图像。

于 2020-10-29T22:52:19.853 回答