【问题标题】:Setting new absolute path of resources within Javascript depending on environment根据环境在Javascript中设置新的资源绝对路径
【发布时间】:2011-11-04 05:38:01
【问题描述】:

我有一个使用 getScript() 函数运行另一个 JS 文件的外部 javascript 文件。

我在 static.mydomain.com 上都有这些。 (我是设置 CDN 的新手)

getScript() 似乎不允许跨域请求,因为我的 HTML 位于 domain.com 上。但后来我根据这篇文章尝试使用相对路径:Dynamic URLs in CSS/JS

它适用于 CSS,但不适用于 JS(特别是在 getScript() 函数中)。这里发生了什么?处理 CDN 时有哪些方法可以缓解此问题?

【问题讨论】:

  • 跨域js源应该没有任何问题。你的代码是什么样的?如果您在 HTML 中包含脚本标记而不是调用 .getScript(),它是否有效?

标签: php javascript jquery css cdn


【解决方案1】:

getScript 方法实际上进行了 ajax 调用,因此它不起作用。除非您需要访问诸如“是否成功找到脚本”之类的内容,否则最好只编写一个快速方法,例如...

function addScript(source, domain) {
    $("head").append("<script src='"+ (domain ? domain + source : source) +"'></script>");
}

这只会将脚本添加到页面顶部,并让您添加一个可选域以指向以防万一您想更改它。

【讨论】:

  • 我正在使用 getScript() 来解决跨域问题。 getScript() 实际上是在 DOM sn-p 加载到我们的页面后在 ajax() 成功选项中调用的。该部分 DOM 由 getScript() 加载的脚本操作。
  • 啊,看来我需要更多信息。不幸的是,我唯一的建议是将该数据存储在一个全局变量中,然后将该 js 文件中的任何内容包装在一个函数中,该函数立即使用该全局变量并以“addScript”的形式调用它。它不灵活,也不漂亮..但我可以提供帮助。祝你好运!
  • 谢谢,斯蒂芬。最终使用全局变量。你可以把它作为你的答案,我可以选择它!
猜你喜欢
  • 2013-03-23
  • 1970-01-01
  • 2018-11-13
  • 1970-01-01
  • 2013-02-09
  • 1970-01-01
  • 2016-07-13
  • 2020-07-26
  • 2023-03-03
相关资源
最近更新 更多