在CDN上托管皮肤文件时可能出现Javascript问题

在CDN上托管皮肤文件时可能出现Javascript问题,javascript,magento,cdn,Javascript,Magento,Cdn,我最近通过我们的托管提供商NexAccess为我们的Magento商店配置了CDN。我最初只对媒体图像执行此操作,但最近也将主题/外观文件移动到CDN上。这似乎是工作在前端伟大,但我注意到一个问题,在管理。如果我尝试上载产品图像,则在弹出窗口中选择文件后失败。它从不向我显示额外的框,在那里我可以选择图片的类型并完成上传。这只是当不安全的皮肤URL指向CDN时的问题。如果我再次在局部指出,一切都正常 我猜这与皮肤文件夹中的javascript有关。有些JS是基于主题的,而不是位于rootJS/文件

我最近通过我们的托管提供商NexAccess为我们的Magento商店配置了CDN。我最初只对媒体图像执行此操作,但最近也将主题/外观文件移动到CDN上。这似乎是工作在前端伟大,但我注意到一个问题,在管理。如果我尝试上载产品图像,则在弹出窗口中选择文件后失败。它从不向我显示额外的框,在那里我可以选择图片的类型并完成上传。这只是当不安全的皮肤URL指向CDN时的问题。如果我再次在局部指出,一切都正常

我猜这与皮肤文件夹中的javascript有关。有些JS是基于主题的,而不是位于root
JS/
文件夹中,我知道有时候远程托管的javascript可能会成为一个问题。我们的CDN URL在我们的子域中,所以我想这没关系,但我对这方面的知识还不够


有没有人遇到过这样或类似的问题?有什么想法吗?

我经历过这种情况,这是由flash上传程序中的安全检查引起的。基础域、链接域、皮肤域和媒体域必须相同,才能继续

快速的解决方法是使用


根据我对
lib/flex/uploader
源文件的记忆(它们也是开源的),只有管理域需要匹配。管理员使用“全局”配置,因此您可以尝试将CDN详细信息仅放在“网站”范围内。要在它们之间切换,请使用配置页面左上角的“配置范围”选择框。

@clockworkgeek是对的,它与安全限制(我相信是XSS)有关。一个不需要安装模块的选项是指定只有您的前端网站提供来自CDN的JS,这意味着管理员端JS将来自防止XSS问题的服务器

要实现这一点,请将管理员的System>Config>Web部分中的网站范围更改为前端存储,取消选中“使用网站”复选框,并将“基本JavaScript URL”设置为CDN。将作用域更改回“默认配置”,并将“基本Javascript URL”设置为
{{unsecure\u Base\u URL}}js/

希望这有帮助,

JD

有一个更简单的解决方案。 您可以为后端和网站提供不同的基本URL。 虽然Magento后端始终使用默认配置范围,但各个网站可能会有所不同

  • 进入系统>常规>网络>不安全。确保当前配置范围是默认的
  • 基本皮肤URL={{unsecure_Base_URL}}皮肤/
  • 基本媒体URL=媒体的CDN URL
  • 基本JavaScript URL={{unsecure_Base_URL}}js/
  • 保存配置
  • 将当前配置范围更改为您首选的网站
  • 基本皮肤URL=静态皮肤的CDN URL
  • 基本媒体URL=媒体的CDN URL
  • Base JavaScript URL=静态的CDN URL

  • 上传按钮没有问题

    您的管理区域是否使用SSL?@Ian,它与XSS而不是SSL相关,请参阅下面的答案。这是一个恼人的问题@Jonathan Day,我这样问是因为https和http之间的连接通常被认为是“跨站点”的,并触发XSS安全保护。看见Flash使用类似的策略。感谢您的回复。我很快会调查的。终于有机会尝试了。它似乎工作得很好。谢谢