【发布时间】:2014-11-15 19:48:34
【问题描述】:
我在 python 中运行本地服务器
python -c $'import SimpleHTTPServer;\nmap = SimpleHTTPServer.SimpleHTTPRequestHandler.extensions_map;\nmap[""] = "text/plain";\nfor key, value in map.items():\n\tmap[key] = value + ";charset=UTF-8";\nSimpleHTTPServer.test();' "$port"
编辑:这是传递给python -c的命令字符串的可读版本,所以在伪代码中,上面的代码块可以这样恢复:python -c $'command' "$port" where
命令部分是:
import SimpleHTTPServer
map = SimpleHTTPServer.SimpleHTTPRequestHandler.extensions_map
map[""] = "text/plain"
for key, value in map.items():
map[key] = value + ";charset=UTF-8"
SimpleHTTPServer.test()
我得到(看似)随机的 404 错误,阻止我的 js 正确执行。
更具体地说,我正在提供一个静态 html 页面及其链接的 javascript 文件。
Chrome 在index.html 页面上的这个脚本标签上告诉我net::ERR_ADDRESS_UNREACHABLE,有时net::ERR_CONNECTION_REFUSED。
<script type="text/javascript" src="http://localhost:8000/lib/fonts.js"></script>
我有 3 种奇怪的行为我不明白:
- 如果我检查运行 python 服务器的终端日志,我没有任何 404 错误。事实上,它表示文件已正确提供 (200)。
- 如果我进入 chrome 的网络面板,它会告诉我:
Failed to load response data但如果我“在新选项卡上打开链接”,我实际上可以看到该文件! 如果我在另一个选项卡上加载文件http://localhost:8000/lib/fonts.js并多次刷新,我永远不会出错。 - 有时我没有收到任何 404 错误,但我的 js 根本不起作用(没有 js 错误)
那么是谁造成了问题? Chrome、Python 或我的 js 中的一些异步行为?
我怀疑js文件没有按顺序加载,所以其他js脚本找不到和使用它们..
EDIT2:
如果我切换服务器,例如使用内置的 php 服务器:
php -S localhost:8000
我不会得到错误
【问题讨论】:
-
如果您将命令行调用分解为可读的python源代码,您的问题可能更容易得到回答。
-
@col6y 我已经这样做了,谢谢
-
如果去掉添加字符集信息的部分,是否还有问题?
-
@col6y 是的,什么都不会改变
-
我试图复制这个,但似乎无法复制,即使有 101MB 的 JavaScript 文件。
标签: javascript python google-chrome