我使用使用AWS-ec2部署的Django-rest-framework實現了REST API。將圖像從AWS上的Django獲取到Android Glide。 404錯誤
settings.py
MEDIA_URL = '/images/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'images')
serializers.py
class PostSerializer(serializers.ModelSerializer):
author = serializers.ReadOnlyField(source='author.username')
class Meta:
model = Post
fields = ('author', 'text', 'image')
def create(self, validated_data):
validated_data['author'] = self.context['request'].user
return super(PostSerializer, self).create(validated_data)
urls.py
router = SimpleRouter()
router.register(r'posts', views.PostViewSet, base_name='posts')
urlpatterns = router.urls
urlpatterns = [
url(r'^', include(router.urls)),
]
views.py
class PostViewSet(viewsets.ModelViewSet):
serializer_class = PostSerializer
permission_classes = [IsAuthenticated]
queryset = Post.objects.all()
所以,它返回:
{
"author": "ghdalsrn",
"text": "11",
"image": "http://ec2-52-78-138-143.ap-northeast-2.compute.amazonaws.com:8000/images/images/Avril_Lavigne_-_00_-_Sk8er_Girl_-_Frontcover_-simplemp3s.jpg"
}
我在我的Android工作室使用"image": "http://ec2-52-78-138-143.ap-northeast-2.compute.amazonaws.com:8000/images/images/Avril_Lavigne_-_00_-_Sk8er_Girl_-_Frontcover_-simplemp3s.jpg"
。
的Android MainActivity.java
public class MainActivity extends AppCompatActivity {
public ImageView mimage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mimage = (ImageView) findViewById(R.id.iv_image);
Glide.with(this)
.load("http://ec2-52-78-138-143.ap-northeast-2.compute.amazonaws.com:8000/images/images/Avril_Lavigne_-_00_-_Sk8er_Girl_-_Frontcover_-simplemp3s.jpg")
.centerCrop()
.into(mimage);
但是,根據我的膩子消息,
膩子
"GET /images/images/filename_sk8er_Girl.jpg HTTP/1.1" 404 5184
而且我的Android應用程序不顯示任何圖片。
我該如何解決這個問題?
在瀏覽器中加載了您的圖片嗎? – navit
@navit不,它不是。它返回了'Page not found(404)請求方法:GET請求URL:http://ec2-52-78-138-143.ap-northeast-2.compute.amazonaws.com:8000/images/images/Avril_Lavigne_- _00 _-_ Sk8er_Girl _-_ Frontcover_-simplemp3s.jpg' –
您的圖像無法訪問。檢查文件系統上的文件位置,並嘗試找出URL。 – navit