Turbogears与Require JS集成

时间:2016-07-08 16:04:34

标签: javascript jquery html5 requirejs turbogears2

所以我以前从未使用过turbogears,但是我实习的公司有turbogears来运行他们的JS文件。我正在尝试将我的新JS代码集成到他们的文件中,但是只是调用脚本会遇到重复的错误,并且想知道是否有人对此有任何经验。

到目前为止的代码

 <html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:py="http://genshi.edgewall.org/"
        xmlns:xi="http://www.w3.org/2001/XInclude">

    <xi:include href="master.html" />
    <xi:include href="antibody/sequences.html" />
    <xi:include href="antibody/display_humanize.html" />
    <xi:include href="antibody/display_align.html" />
    <xi:include href="antibody/displayseqalign.html" />
    <xi:include href="workspaces/model_fasta.html" />
    <xi:include href="workspaces/model_pdb.html" />
    <xi:include href="workspaces/model_humanize.html" />
    <xi:include href="workspaces/design_helpers.html" />

    <head>
    <meta content="text/html; charset=UTF-8" http-equiv="content-type" py:replace="''"/>
    <title>Macromoltek | Online Modeling Workspace</title>
    <meta name="description" content="Online modeling workspace" />
    <meta name="keywords" content="Macromoltek, Antibody, Analysis, Modeling, Online Modeling, Antibody Analysis, Bioinformatics, SmrtMolAntibody, Scientific Software, Master, online, modeling, workspace" />
    <link rel="stylesheet" type="text/css" media="screen" href="${tg.url('/css/align.css')}" />
    <link rel="stylesheet" type="text/css" media="screen" href="${tg.url('/css/align_num.css')}" />
    <link rel="stylesheet" type="text/css" media="screen" href="${tg.url('/css/workspace.css')}" />
    <link rel="stylesheet" type="text/css" media="screen" href="${tg.url('/css/annotate.css')}" />
    <link rel="stylesheet" href="${tg.url('/css/pictos.css')}" type="text/css" charset="utf-8" />
    <script type="text/javascript" src="${tg.url('/javascript/canvas.js')}"></script>
    <script type="text/javascript" src="${tg.url('/javascript/numbering.js')}"></script>
    <script type="text/javascript" src="${tg.url('/javascript/fasta.js')}"></script>
    <script type="text/javascript" src="${tg.url('/javascript/align.js')}"></script>
    <script type="text/javascript" src="${tg.url('/javascript/design.js')}"></script>
    <script type="text/javascript" src="${tg.url('/pv/js/modernizr-2.8.3.min.js')}"></script>
    <script type="text/javascript" src="${tg.url('/pv/js/jquery-2.0.2.min.js')}"></script>
    <script type="text/javascript" src="${tg.url('/pv/js/foundation-5.4.7.min.js')}"></script>
    <script type="text/javascript" data-main="${tg.url('/pv/demo.js')}" src="${tg.url('/pv/js/require.js')}"></script>

    <script type="text/javascript">

所以我知道它使用$(tg.url())命令找到了需要的JS文件,但是我遇到了调用pv目录中的其他JS文件的问题。获得红色GET并且无法在我的控制台中加载资源。

想法(可怕的)

如果我使用turgogears命令调用html文件中的每个脚本,这样做真的需要一些时间,因为大约有20个文件。它看起来也不干净。

问题

有没有办法在所有文件上运行该命令,或者使用与以前不同的require.js工作?

更新

嘿,所以在需要js我们有命令

requirejs.config({
    'baseUrl': 'src',
});

哪个告诉html页面首先加载src文件中的所有JS文件。 但是如果我需要在HTML页面中运行turbogears来获取文件,我将如何去做呢?我确实试图复制并粘贴

的命令
${tg.url('/pv/src')}

但是这确实无法运作。有什么建议 ?

1 个答案:

答案 0 :(得分:1)

tg.url只返回url字符串,因此写/py/demo.js${tg.url('/pv/demo.js')}之间通常没有区别。

tg.url将为您做的是补偿SCRIPT_NAME,以防您的应用程序在子路径上运行,但在通过gearbox进行本地开发或在部署根目录时进行部署虚拟主机你不应该注意到生成的网址有任何不同。

你能尝试更好地表达你的问题吗?在我看来,它可能与 requirejs 更相关,而不是 turbogears 本身,您可能需要设置 requirejs baseUrl(参见http://requirejs.org/docs/api.html#config-baseUrl