在Windows 7上,我使用的是命令行
python -m SimpleHTTPServer 8888
Run Code Online (Sandbox Code Playgroud)
调用一个简单的Web服务器来提供目录中的文件,以便进行开发.
问题是服务器似乎将文件保留在缓存中.尽管有更新的文件,但仍会提供旧版本的文件.
有没有办法直接从命令行指定"无缓存"选项?
Bra*_*rks 49
也许这可行.将以下内容保存到文件中:
serveit.py
#!/usr/bin/env python
import SimpleHTTPServer
class MyHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def end_headers(self):
self.send_my_headers()
SimpleHTTPServer.SimpleHTTPRequestHandler.end_headers(self)
def send_my_headers(self):
self.send_header("Cache-Control", "no-cache, no-store, must-revalidate")
self.send_header("Pragma", "no-cache")
self.send_header("Expires", "0")
if __name__ == '__main__':
SimpleHTTPServer.test(HandlerClass=MyHTTPRequestHandler)
Run Code Online (Sandbox Code Playgroud)
然后使用它运行它
python serveit.py 8000
Run Code Online (Sandbox Code Playgroud)
在端口8000上提供当前目录.这完全取决于这个要点,似乎工作得很好!
注意:如果您只是想运行一个本地Web服务器来提供静态内容,您可能会对一个预先安排好的节点解决方案感兴趣=> http-server,我一直在使用它,似乎工作得很好.
此外,如果你在Mac上,如果你以root身份运行它,你可以在端口80或443上运行它!例如
sudo python serveit.py 80
应该允许您运行它并在浏览器中访问它 http://localhost
DBr*_*own 14
当然上面的脚本不适用于Python 3.x,但它只是将SimpleHTTPServer更改为http.server,如下所示:
#!/usr/bin/env python
import http.server
class MyHTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
def end_headers(self):
self.send_my_headers()
http.server.SimpleHTTPRequestHandler.end_headers(self)
def send_my_headers(self):
self.send_header("Cache-Control", "no-cache, no-store, must-revalidate")
self.send_header("Pragma", "no-cache")
self.send_header("Expires", "0")
if __name__ == '__main__':
http.server.test(HandlerClass=MyHTTPRequestHandler)
Run Code Online (Sandbox Code Playgroud)
对不起,我会添加评论,但显然我没有足够的代表......