[英]How to load Javascript with imported modules?
我正在尝试从 tensorflowjs 导入模块,下面是我的代码。 测试.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@2.0.0/dist/tf.min.js"></script>
<script type="module" src="./test.js"></script>
</body>
</html>
测试.js
import * as tf from "./node_modules/@tensorflow/tfjs";
import {loadGraphModel} from "./node_modules/@tensorflow/tfjs-converter";
const MODEL_URL = './model.json';
const model = await loadGraphModel(MODEL_URL);
const cat = document.getElementById('cat');
model.execute(tf.browser.fromPixels(cat));
此外,我在命令提示符(Windows 10)中使用python -m http.server
运行服务器,这是浏览器控制台日志中的错误提示:
Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "text/html". Strict MIME type checking is enforced for module scripts per HTML spec.
您可以使用以下 python 脚本来提供您的文件:
serve.py
import http.server
import socketserver
import sys
PORT = 8000
if len(sys.argv) > 1:
PORT = int(sys.argv[1])
class HttpRequestHandler(http.server.SimpleHTTPRequestHandler):
extensions_map = {
# '': 'application/octet-stream',
'': 'text/html',
'.manifest': 'text/cache-manifest',
'.html': 'text/html',
'.png': 'image/png',
'.jpg': 'image/jpg',
'.svg': 'image/svg+xml',
'.css': 'text/css',
'.js':'application/x-javascript',
'.wasm': 'application/wasm',
'.json': 'application/json',
'.xml': 'application/xml',
}
httpd = socketserver.TCPServer(("localhost", PORT), HttpRequestHandler)
try:
print(f"serving at http://localhost:{PORT}")
httpd.serve_forever()
except KeyboardInterrupt:
pass
然后:
python./serve.py 8000
默认情况下, http.server
不处理 MIME 类型。 上述脚本根据文件的扩展名指示在响应 header 中使用哪种 MIME 类型。
如果您使用 Node.js,则可以使用http-server
package 来提供您的文件。
npm install --global http-server
http-server
或者,使用: npx http-server
有关详细信息和选项,请参阅文档
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.