【问题标题】:ASP & Javascript: Relative Path IssueASP & Javascript:相对路径问题
【发布时间】:2012-11-24 16:15:25
【问题描述】:

我对此束手无策。我正在与一个使用 ASP 的客户签订合同,并且对它非常不熟悉。我正在使用名为 jPlayer 的视频功能。如果可以,jPlayer 将使用 HTML5 视频,否则将使用 Flash 插件。设置播放器对象时,将其指向 Flash 播放器所在的目录。

我的问题是,经过几个小时的兜圈子,当页面保存为“.aspx”并具有 ASPnet 功能时,我似乎无法让这条路径正常工作。当我将其另存为“.html”时,它可以完美运行。有没有人遇到过这个问题?下面是启动 jPlayer 的代码:

$(this).siblings('.jPlayer').jPlayer({
    swfPath: "scripts/jQuery.jPlayer.2.2.0/",
    solution: 'flash, html',
    supplied: 'm4v',
    cssSelectorAncestor: "#j_controls_"+cur_ctrl,
    ready: function () {
        $(this).jPlayer("setMedia", {
            m4v: file 
        });                 
        $(this).jPlayer("play");
    },
    wmode: "opaque"
})

【问题讨论】:

标签: javascript asp.net relative-path jplayer


【解决方案1】:

将 aspx 文件视为对服务器的指令,而不是对客户端的指令。最终将发送给客户端的内容没有直接的 1:1 映射。例如,将在/some/path/with/subdirectories/test.aspx 访问的文件可能与在/root/test.aspx 访问的文件完全相同

当客户端收到下载script/jPlayer.js的指令时,构造的HTTP请求将完全不同,具体取决于加载aspx的两个地址中的哪一个。

最可靠的方法是从应用程序根目录访问您的文件,即在路径中使用前导 /

如果您无法仅通过查看路径来找出脚本没有被加载的原因,请使用浏览器检查工具查看它真正尝试加载资源的路径以及您要加载的位置404。

很可能是您的 jPlayer 文件加载得非常好,但 jPlayer 脚本又使用相对路径来加载另一个资源,这就是您得到 404 的地方。

【讨论】:

    【解决方案2】:

    您的所有标记都是纯 html 吗?或者你正在使用任何 asp 控件?如果你使用这样的控件,你应该警惕这种标记指定的 id 在渲染之前在服务器端被改变。另请注意,您的页面可能包含一个母版页,其中包含各种其他标记和 js。很难告诉你这个小信息有什么问题。

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 2012-03-01
      • 2014-05-09
      • 2016-01-08
      • 2011-04-29
      • 1970-01-01
      • 2011-07-02
      • 2015-08-14
      • 2016-07-10
      相关资源
      最近更新 更多