处理来自 IOS 设备的请求时发生异常

Vis*_*hnu 5 python sockets django ios django-rest-framework

我正在尝试在 iOS 设备上播放视频。当我尝试播放时,出现以下错误:

[27/Apr/2015 06:59:30] "GET /media/2015/04/VID_20150327_112644.mp4 HTTP/1.1" 200 18

 Exception happened during processing of request from ('192.168.1.230', 51412)
Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 593, in process_request_thread
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 334, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/home/likewise-open/ZEALOUSYS/manesh/virtualenv/tracks/local/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 129, in __init__
    super(WSGIRequestHandler, self).__init__(*args, **kwargs)
  File "/usr/lib/python2.7/SocketServer.py", line 651, in __init__
    self.finish()
  File "/usr/lib/python2.7/SocketServer.py", line 710, in finish
    self.wfile.close()
  File "/usr/lib/python2.7/socket.py", line 279, in close
    self.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
Exception happened during processing of request from ('192.168.1.230', 51412)
Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 593, in process_request_thread
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 334, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/home/likewise-open/ZEALOUSYS/manesh/virtualenv/tracks/local/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 129, in __init__
    super(WSGIRequestHandler, self).__init__(*args, **kwargs)
  File "/usr/lib/python2.7/SocketServer.py", line 651, in __init__
    self.finish()
  File "/usr/lib/python2.7/SocketServer.py", line 710, in finish
    self.wfile.close()
  File "/usr/lib/python2.7/socket.py", line 279, in close
    self.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
Run Code Online (Sandbox Code Playgroud)

所有格式的视频文件在所有浏览器和 Android 设备中都能完美运行。当我尝试从 iOS 设备访问它时。它给了我上述错误。正如您在错误中看到的那样,首先它给我的响应为 200,然后管道损坏。这条断了的管子到底是什么意思?仅供参考,我已经发布了一个问题,说明我无法在 iOS 设备上播放视频,我现在发布一个新问题,因为我在终端中发现了这个错误。

我该如何解决这个问题?任何帮助表示赞赏。

小智 3

这是因为 django 正在处理您的媒体文件而不是 apache。尝试更改服务器中的配置。

例如,在 apache2 中编辑 example.com.conf 文件添加以下行,以便 apache 提供媒体文件。

**Alias /media /your project path/media**
Run Code Online (Sandbox Code Playgroud)

有时这可能会解决此问题。