如何将托管YUI与SSL一起使用?

时间:2014-08-12 11:47:01

标签: javascript yui

我已将YUI下载到我的本地服务器上并链接到yui-min.js。我使用的代码是:

<script src="//mysite.com/scripts/yui3-3.17.2/build/yui/yui-min.js"></script>

这在HTTP环境中运行良好,但在切换到HTTPS时无法正常工作。

我唯一的yui代码如下:

    <script>
YUI({
    classNamePrefix: 'pure'
}).use('gallery-sm-menu', function (Y) {

    var horizontalMenu = new Y.Menu({
        container         : '#demo-horizontal-menu',
        sourceNode        : '#std-menu-items',
        orientation       : 'horizontal',
        hideOnOutsideClick: false,
        hideOnClick       : false
    });

    horizontalMenu.render();
    horizontalMenu.show();

});
</script>

我相信我需要使用组合处理程序才能使其工作,但我无法理解有关其工作原理的文档。有人可以帮忙吗?

谢谢!

马特

2 个答案:

答案 0 :(得分:2)

这是在https:

中运行的完整代码

<script>
YUI({
    classNamePrefix: 'pure',
    modules: {
    	'gallery-sm-menu': {
    		fullpath: 'js/yui-gallery-master/build/gallery-sm-menu/gallery-sm-menu.js'
    	},
    	'gallery-sm-menu-base-min': {
    		fullpath: 'js/yui-gallery-master/build/gallery-sm-menu-base/gallery-sm-menu-base-min.js'
    	},
		'gallery-sm-menu-templates-min': {
			fullpath: 'js/yui-gallery-master/build/gallery-sm-menu-templates/gallery-sm-menu-templates-min.js'
		},
		'gallery-sm-menu-item-min': {
			fullpath: 'js/yui-gallery-master/build/gallery-sm-menu-item/gallery-sm-menu-item-min.js'
		}
    }
}).use(	'gallery-sm-menu',
		'gallery-sm-menu-base-min',
		'gallery-sm-menu-templates-min',
		'gallery-sm-menu-item-min', function (Y) {

    var horizontalMenu = new Y.Menu({
        container         : '#demo-horizontal-menu',
        sourceNode        : '#std-menu-items',
        orientation       : 'horizontal',
        hideOnOutsideClick: false,
        hideOnClick       : false
        });
    horizontalMenu.render();
    horizontalMenu.show();

});
</script>

答案 1 :(得分:0)

YUI CDN(yui.yahooapis.com)不支持HTTPS端点。诸如gallery-sm-menu之类的库模块将从HTTP CDN加载为默认值。您需要在YUI配置对象中定义模块。

示例如下。另请参阅YUI Global Object

YUI({
    modules: {
        gallery-sm-menu: {
            fullpath: 'https://your-domain/your/path/to/module.js'
        }
    }
}).use("gallery-sm-menu", function (Y) {
    // do something.
});