2012-12-06 49 views
0

我在這件事情的最後。我正在和一個使用ASP的客戶簽訂合同,並且對此非常不熟悉。我正在使用稱爲jPlayer的視頻功能。如果可以的話,jPlayer會使用HTML5視頻,如果沒有,它會回落到Flash插件。當您設置播放器對象時,您將其指向Flash播放器所在的目錄。ASP&Javascript:相對路徑問題

我的問題,經過幾個小時的繞圈運行後,我似乎無法得到這個路徑工作時,頁面保存爲「.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" 
}) 
+0

爲什麼不使用絕對路徑? –

+0

我試過這個,它似乎沒有工作。這裏是絕對路徑:http://testwww.chicagobooth.edu/faculty/scripts/jQuery.jPlayer.2.2.0/Jplayer.swf – Throttlehead

回答

0

是你所有的標記純html嗎?或者你是否使用任何asp控件?如果您使用像那樣的控件,則應該謹慎,在渲染之前,由此類標記指定的標識在服務器側會被更改。另外請注意,您的頁面可能包含一個包含各種其他標記和js的主頁。很難告訴你這些信息有什麼問題。

0

考慮一個aspx文件作爲服務器的指令,而不是客戶端。沒有直接的1:1映射到最終將發送給客戶端的映射。例如,將在/some/path/with/subdirectories/test.aspx處訪問的東西可以是完全相同的文檔,例如在/root/test.aspx處訪問的東西。

當客戶端收到下載script/jPlayer.js的指令時,構造的HTTP請求將完全不同,具體取決於aspx加載的兩個地址中的哪一個。

最可靠的方法是從應用程序根目錄訪問文件,即路徑中的前導/

如果通過單獨查看路徑無法確定腳本未加載的原因,請使用瀏覽器檢查工具查看它真正嘗試加載資源的路徑以及您的位置得到一個404

這很可能是因爲您的jPlayer文件加載完美的罰款,但反過來jPlayer腳本使用相對路徑來加載其他資源,並認爲這是你在哪裏得到一個404

+0

是的,這臺服務器是一個friggin混亂讓我告訴你哈哈。 – Throttlehead