MathJax不适用于自托管库

时间:2018-11-05 16:50:48

标签: javascript jquery ajax mathjax

我正在将Web应用程序安装在公司防火墙后面的服务器中,因此我需要打一些补丁才能用自托管的CDN替换CDN中的JavaScript库。

当我将MathJax路径从//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS_HTML替换为//a.mysite.com/lib/MathJax/MathJax.js?config=TeX-AMS_HTML时,问题就来了。在浏览器中观察请求,我看到它正确地加载了MathJax.js,但没有以文本形式呈现公式。

这是完整的涉及功能:

$update.click(function () {
    var text = $textarea.val();
    if (text) {
        $preview.addClass('dmmd-preview-stale');
        $.post(preview_url, {
            preview: text,
            csrfmiddlewaretoken: $.cookie('csrftoken')
        }, function (result) {
            $content.html(result);
            $preview.addClass('dmmd-preview-has-content').removeClass('dmmd-preview-stale');

            var $jax = $content.find('.require-mathjax-support');
            if ($jax.length) {
                if (!('MathJax' in window)) {
                    $.ajax({
                        type: 'GET',
                        url: $jax.attr('data-config'),
                        dataType: 'script',
                        cache: true,
                        success: function () {
                            $.ajax({
                                type: 'GET',
                                url: '//a.mysite.com/lib/MathJax/MathJax.js?config=TeX-AMS_HTML',
                                dataType: 'script',
                                cache: true,
                                success: function () {
                                    MathJax.Hub.Queue(function () {
                                        $content.find('.tex-image').hide();
                                        $content.find('.tex-text').show();
                                    });
                                }
                            });
                        }
                    });
                } else {
                    MathJax.Hub.Queue(['Typeset', MathJax.Hub, $content[0]], function () {
                        $content.find('.tex-image').hide();
                        $content.find('.tex-text').show();
                    });
                }
            }
        });
    } else {
        $content.empty();
        $preview.removeClass('dmmd-preview-has-content').removeClass('dmmd-preview-stale');
    }
}).click();

当前,我为同一服务器和webapp配置了两个主机名,比如:

  • A:a.mysite.com
  • B:b.mysite.com

奇怪的是,使用上述功能,通过 B 加载网站可以正常工作。但是,当我将函数中的url值更改为 B 时, A 有效,而 B 无效。我不太了解JavaScript,所以不知道是否缺少明显的东西。

0 个答案:

没有答案