2011-08-04 53 views
0

我有一個在mod_wsgi上運行在Apache上的Django支持的頁面。它在Firefox中運行得很好。但是,當我切換到Internet Explorer時,我的鏈接都不起作用。他們都放棄了鏈接的域名部分。Django應用程序鏈接在Internet Explorer中丟失域

例如,在Firefox中,如果將鼠標懸停在其中一個鏈接上,我會看到如下所示的內容: http://mydomain.edu/pathtomystuff/linkpage/ 它可以工作。

然而,在Internet Explorer中,相同的鏈接顯示了這個當我鼠標移到它: http:///pathtomystuff/linkpage/ ,顯然是行不通的。

如果我在Internet Explorer中手動輸入地址,它可以正常工作。這只是鏈接。

這可能是明顯的和骨頭。請原諒我:)

UPDATE 嗯,我弄清楚了一些「解決方案」。我在我的基本html文件(我的網站中的所有其他頁面擴展)中都有BASE href = {{request.path}}。在回顧IE和Firefox顯示的源代碼時,兩者都看到了BASE href =這意味着request.path沒有被傳遞給我的模板。所以我將它改爲BASE href = mydomain.edu,它現在可以在IE中使用。

這是不是一個偉大的修復,但因爲它需要從Django應用程序的可移植性了......

+0

即你使用哪個版本,我知道IE7會做一些有趣的事情與鏈接,如果你只是一個'/'或'#' – asawilliams

+0

正在使用IE7。我有一些解決方案,但... – andy

回答

0

如果你想保留的可移植性(以及可維護性),最簡單,最「djangonistic」方式繼續將在您的模板中使用{%url%}標記。

請注意{%url%}標記應該以'參數'的形式傳遞一個視圖,例如:{%url myApp.views.myView foo ='bar'%}將使用您的urlconf創建相應的url這將指向名爲myView的myApp視圖,其值'bar'作爲'foo'arg傳遞。

當然,你不必在所有你的看法參數,FOO =「酒吧」的一部分純粹是可選的(請做筆記,你不應該指定請求參數)

最常見的用途是使用語法如:

<a href="{% url myApp.views.myView foo='bar' %}">MyLink</a> 

基本上你想在這裏做的是徹底改造網址標籤,它已經存在,所以用它! :)

+0

我認爲這是朝正確方向邁出的一步,但我需要在那裏出現的是域,它不在我的urlconf中。即,我的應用程序的根目錄是http://mydomain.edu/pathtomystuff/。這是我的應用程序的「主頁」,也是我的urlconf中最根本的位置。我在我的網站的其他地方成功使用了url標記,但是我的問題與「base href」有關。 – andy

+0

嗯,它很黑,但你可以編寫一個上下文處理器,使用請求的構建絕對URL方法爲你的「根視圖」,並在上下文中傳遞它。 –

相關問題