SocketでPython 3を使用する。Python WebサーバーでJavascriptをHTMLにリンクする
私は、HTMLファイルへのJavaScriptファイルをリンクできません。私は、同じディレクトリに、特に以下の3つのファイルがあります。
webserver.py
import socket
def getTextFromFile(filename):
with open(filename, 'r') as myFile:
return myFile.read()
host, port = '192.168.0.7', 11010
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((host, port))
s.listen(1)
print('Now serving: ' + host + ' at: ' + str(port))
while True:
try:
c, addr = s.accept()
print('Received connection form: ' + str(addr))
request = c.recv(1024)
response = '\HTTP/1.1 200 OK' + getTextFromFile("index.html")
c.sendall(response.encode())
c.close()
except Exception as e:
print(e)
index.htmlを
<html>
<head>
<title>Title</title>
<script src="indexjs.js"></script>
</head>
<body>
<h1>Hello there.</h1>
<p>This is a webserver test.</p>
<button type="button" onclick="myFunction()">Click me!</button>
<p id="demo"></p>
</body>
</html>
indexjs.js
function myFunction(){
document.getElementById("demo").innerHTML = "Hello";
}
Webサーバーのコード自体は正常に動作し、ルーターはポート転送され、まったく別のネットワークからアクセスできます。しかし、ウェブサイトが訪問されると、javascriptは実行されないように見えます。 index.htmlのscriptタグの中に同じjavascriptコードを置き、indexjs.jsを省略すると、意図したとおりに動作します。 indexjs.jsがjavascriptコードをスクリプトタグに入れずにindex.htmlと正しくリンクできるようにするにはどうすればよいですか?
また、imgタグを使ってindex.html(pngファイル、index.htmlと同じディレクトリ)に画像を置くことで同様のアプローチを試みましたが、どちらも表示されなかったので、私のようですコードは、すべてのファイルをindex.htmlにリンクする際に問題があります。私が取っている
手順:
ランは私のパブリックIP xxx.xxxに
オープンブラウザ(私の場合には、クロムであることを起こる)
タイプをwebserver.py。 xxx.xxx:11010を入力してEnterを押す
ウェブページは表示されますが、写真は表示されません(リンクされている他のアセット)。また、ボタンが押されたときなどにJavaScript機能は実行されません。
すべてのヘルプは、事前に感謝をいただければ幸いです。
これらはすべて同じディレクトリにあります。私の知る限りでは、これは通常許可され、うまくいくはずですが、なんらかの理由で動作しません。 – user9048141