python 404页面未找到404页面未找到

bvhaajcl  于 11个月前  发布在  Python
关注(0)|答案(7)|浏览(109)

我能够上传文件到媒体文件夹('/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

vnzz0bqm

vnzz0bqm1#

在你的项目中添加媒体URL条目urlpatterns:

from django.conf.urls.static import static
from django.conf import settings

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

字符串

vlurs2pr

vlurs2pr2#

对于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/

wqnecbli

wqnecbli3#

补充一点:如果其他答案对你不起作用,试着把静态URL放在其他答案之前。像这样:

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

字符串
可能发生的情况是,列表中的某些模式阻止了请求到达静态处理程序。因此,将静态处理程序放在第一位可以解决这个问题。对我来说很有效。

uajslkp6

uajslkp64#

这是一个服务器错误。我假设你使用的是Nginx。只需将此添加到Nginx配置文件(/etc/nginx/sites-available/example.com)中的location /static/

location /media/ {
    root /home/user/myprojectdir;
}

字符串
这里,user应为您创建的用户名myprojectdir应为您的项目目录

6l7fqoea

6l7fqoea5#

在模板中,通过锚标记创建链接,并在文件对象的末尾添加.url,例如

{% for post in post %}

   <a href="{{post.imagefilename.url}}" > 

{% endfor %}

字符串

14ifxucb

14ifxucb6#

在我的 development 服务器中,我通过在settings.py中注解掉这些行来修复它

STATICFILES_DIRS = (
     os.path.join(BASE_DIR, 'static'),
)

字符串

yftpprvb

yftpprvb7#

您还需要确保(当然仅在开发模式下)在settings.py文件中将调试标志设置为True DEBUG=True

相关问题