2

Joomla 有一个功能,当站点处于调试模式时,它会加载一个缩小的 javascript 文件和未压缩的版本。

我已正确命名我的两个文件,并将其包含如下:

JHtml::_('script', JUri::root() . 'path_to_file/jquery-sortable.js');

当我将站点置于调试模式时,它不会加载未压缩的文件。但是,如果我改用以下内容,它可以正常工作:

JHtml::_('script', 'path_to_file/jquery-sortable.js');

现在我不确定这是否是 Joomla 中的错误,但我无法在网上找到任何有关此的信息。我想JURI::root()在路径中使用。

有人有这方面的信息吗?

4

1 回答 1

2

实际上,如果脚本 URL 以 开头http,则负责包含未压缩版本的代码(即,min.如果存在,则删除该段,-uncompressed否则添加)将被忽略。

这种行为的来源:

JHtml::includeRelativeFiles()libraries/cms/html/html.php:298

protected static function includeRelativeFiles($folder, $file, $relative, $detect_browser, $detect_debug)
{
    // If http is present in filename
    if (strpos($file, 'http') === 0)
    {
        $includes = array($file);
    }
    else
        //process the script sourch.
    }
    ...
}

大多数脚本文件,包括框架,都作为相对路径包含在内。我猜这种行为是为了防止远程资源被 404ed 。

于 2013-09-13T14:49:41.507 回答