Windows 7では、コマンドラインを使用しています
python -m SimpleHTTPServer 8888
開発のために、ディレクトリからファイルを提供するために単純なWebサーバーを呼び出します。
問題は、サーバーがファイルをキャッシュに保持しているように見えることです。新しいバージョンが利用可能であるにもかかわらず、古いバージョンのファイルが提供されます。
コマンドラインから直接「キャッシュなし」オプションを指定する方法はありますか?
Windows 7では、コマンドラインを使用しています
python -m SimpleHTTPServer 8888
開発のために、ディレクトリからファイルを提供するために単純なWebサーバーを呼び出します。
問題は、サーバーがファイルをキャッシュに保持しているように見えることです。新しいバージョンが利用可能であるにもかかわらず、古いバージョンのファイルが提供されます。
コマンドラインから直接「キャッシュなし」オプションを指定する方法はありますか?
おそらくこれはうまくいくかもしれません。以下をファイルに保存します。
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)
次に、を使用して実行します
python serveit.py 8000
ポート8000で現在のディレクトリを提供します。これはこの要点から完全に引き出されたものであり、うまく機能しているようです。
注:静的コンテンツを提供するためにローカルWebサーバーを実行することだけを考えている場合は、これを行うための事前に用意されたノードソリューションに興味があるかもしれません=> http-server、これは私が使用していて、うまく機能しているようです。
また、Macを使用している場合、これをrootとして実行すると、ポート80または443で実行できます。例えば
sudo python serveit.py 80
それを実行し、ブラウザでアクセスできるようにする必要があります。http://localhost
もちろん、上記のスクリプトはPython 3.xでは機能しませんが、以下に示すようにをに変更するだけですSimpleHTTPServer
。http.server
#!/usr/bin/env python3
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)
ブラウザを更新するときは、Ctrl+F5を押すことをお勧めします。
ちょうどこれに遭遇しました、それはあなたが探しているものかもしれません(ちなみに、それはルビーにあります)
SimpleHTTPServerではなく、ファイルをキャッシュしているのはブラウザかもしれません。最初にブラウザのキャッシュを無効にしてみてください。
別のポート番号に変更すると、更新されたファイルがブラウザに反映されました。
元。
python -m http.server -p 8000
python -m http.server -p 8001