Я устанавливаю веб-приложение на сервере за корпоративным брандмауэром, поэтому мне нужно сделать несколько исправлений, чтобы заменить библиотеки JavaScript из CDN автономными.
Проблема возникает, когда я заменяю путь 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();
В настоящее время я настроил два имени хоста для одного и того же сервера и веб-приложения, скажем:
- A:
a.mysite.com
- B:
b.mysite.com
Странно то, что с вышеуказанной функцией загрузка сайта через B работает нормально. Однако, когда я изменяю значение url
в функции на B , тогда A работает, а B - нет. Я не очень разбираюсь в JavaScript, поэтому не знаю, упускаю ли я что-то очевидное.