IT-Swarm.Net

页面未找到404 Django媒体文件

我可以将文件上传到我在'/peaceroot/www/media/'中设置的媒体文件夹(settings.py),如下所示

MEDIA_ROOT = '/peaceroot/www/media/'
MEDIA_URL = '/media/'

但通过管理员我试图访问上传的图像文件

http:// localhost:8000/media/items/1a39246c-4160-4cb2-a842-12a1ffd72b3b.jpg

然后我收到404错误。

该文件存在于peaceroot/www/media/items/1a39246c-4160-4cb2-a842-12a1ffd72b3b.jpg

16
madhu131313

在项目urlpatterns中添加媒体网址条目:

from Django.conf.urls.static import static
from Django.conf import settings

...
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
40
v1k45

MEDIA_ROOT更好的方法是,

在移动项目时,尝试使媒体路径动态变得容易。

Settings.py

BASE_DIR = os.path.dirname(os.path.dirname(__file__))


MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
MEDIA_URL = '/media/'

urls.py

from Django.conf import settings
from Django.conf.urls.static import static

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

看这个

https://docs.djangoproject.com/en/dev/howto/static-files/

7
Kjjassy

只是添加:如果其他答案对您不起作用,请尝试将静态URL放在其他答案之前。像这样:

urlpatterns = static(...) + [...]

可能发生的情况是列表中的某些模式会阻止请求到达静态处理程序。因此,首先使用静态处理程序解决了这个问题。为我工作。

1
Seyi Shoboyejo