django - '在此服务器上未找到请求的资源。' django-rest-framework 和 pythonanywhere 中的错误
问题描述
我有一个简单的 DRF 项目,我想在 Pythonanywhere 上部署它。我做了所有想要的配置,你可以在下面看到照片。
但是当我想点击上传的照片链接(底部照片)
我遇到“在此服务器上找不到请求的资源”。错误(下图)
这是我的 pythonanywhere 媒体配置:
这是我在 settings.py 中的媒体设置:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_URL = '/pictures/'
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploaded_pictures')
这是我的 urls.py 代码:
urlpatterns = [
path('admin/', admin.site.urls),
path('api-auth/', include('rest_framework.urls')),
path('api/', include('gardesh.urls'))
]
这是我的 models.py 代码:
class Profile(models.Model):
owner = models.OneToOneField(User, on_delete=models.CASCADE)
bio = models.CharField(max_length=150, null=True, blank=False)
img = models.ImageField(upload_to='user/prof',null=False, blank=False)
def __str__(self):
return self.owner.username
class Post(models.Model):
owner = models.ForeignKey(User,on_delete=models.CASCADE)
cover = models.ImageField(upload_to='user/cover',null=False, blank=False)
caption = models.TextField(max_length=250, null=False, blank=False)
title = models.CharField(max_length=40, null=False, blank=False, default='no')
def __str__(self):
return self.title
class Comment(models.Model):
auther = models.ForeignKey(User, on_delete=models.CASCADE)
body = models.TextField(max_length=150, null=False, blank=False)
post = models.ForeignKey(Post, on_delete=models.CASCADE,related_name='comments')
published_date = models.DateTimeField(null=False, blank=False, auto_now_add=True)
parent = models.ForeignKey('self', on_delete=models.CASCADE, blank=True,
null=True, related_name='replys')
你可以在我的 GitHub 上看到我所有的代码:https ://github.com/GrandNative/Api-gardesh 。谢谢您的帮助
解决方案
在 PythonAnywhre 上,您还需要在 Web 应用程序页面上设置静态文件映射。您需要转到那里的静态文件部分,并在 url 部分(在您的情况下为/pictures/
)中输入与 MEDIA_URL 相同的 URL,并将 MEDIA_ROOT 的路径输入到路径部分(完整路径,包括/home/username/...
)。如果其余的设置都很好,它应该在重新加载网络应用程序后工作。另请参阅此帮助页面。
推荐阅读
- sql - 如何在 SQL Server 中进行增量加载
- wordpress - Wordpress 搜索代码在本地主机上工作,但不在实时环境中
- html - 网站似乎在 chrome 上缩小了
- react-native - 如何在调试模式下启动本机应用程序而不在开发人员菜单中远程选择调试 js
- git - 为什么在 git push --mirror 期间 git force 更新我的提交?
- html - 为什么我的锚标签没有移动到 div 目标?
- javascript - 外部文件中的角度不起作用
- pascal - 如何将自定义数据类型转换为字符串
- google-apps-script - 传递给客户端代码时服务器端对象丢失
- sml - 如何使用相对于导入器的路径从 SML 中的另一个文件导入?