使用Flask,Python在HTML中无法正确导入外部Javascript

时间:2015-08-04 19:59:58

标签: javascript jquery flask jinja2

我正在使用Flask和nGinx开发一个网络应用程序。我正在我的主模板中导入一些Javascript模块,但似乎这个代码根本没有被执行。

这是我的代码:

base.html (仅限重要部分)

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>{% block title %}{% endblock %} Some Title</title>
    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
    <!--<script src="jquery-1.9.1.min.js"></script>-->
    <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.16/socket.io.min.js"></script>
    <!--<script src="{{ url_for('static', filename='js/debug.js') }}"></script>-->
    <script src="{{ url_for('static', filename='js/model.js') }}"></script>
    <script src="{{ url_for('static', filename='js/control.js') }}"></script>
    <script src="{{ url_for('static', filename='js/cmdmenu.js') }}"></script>
    <script language="javascript" type="text/javascript" src="{{ url_for('static', filename='flot/jquery.flot.js') }}"></script>
    <script language="javascript" type="text/javascript" src="{{ url_for('static', filename='flot/jquery.flot.axislabels.js') }}"></script>
    <!--<link rel="stylesheet" type="text/css" href="css/test-div.css">-->
    <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='css/final.css') }}">
    <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='css/menu.css') }}">
    <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='css/tipsy.css') }}">
</head>

debug.js

window.alert('hola');

model.js

window.alert('holbbbba');

control.js

var namespace = '/test'; 
var socket = io.connect('http://' + document.domain + ':' + location.port + namespace);
socket.on('connect', function() {
    socket.emit('my event', {data: 'I\'m connected!'});
});
window.alert('pre');
// moooooooore and moore code here

问题是,debug.js警报出现,但model.jscontrol.js警报不会出现。最奇怪的是套接字连接正确完成。我已经尝试在这些文件中加入一些console.log,但浏览器控制台上没有任何内容。显然,原始js文件之前较大,但试图将它们最小化,甚至使它们相等(例如模型和调试)似乎并没有给我任何见解。此外,我已经检查并重新检查了语法,一切似乎都没问题。

文件名没问题,因为它们位于我项目的/static目录中并使用url_for jinja / flask的功能。我真的不知道到底发生了什么。如果你能帮助我,我会很高兴的。

提前致谢。

0 个答案:

没有答案