2015-02-23 49 views
2

我正在開發一個多語言網頁。在Django中刪除一部分url地址

url.py

urlpatterns = patterns('', 
    url(r'^$', 'mysite.views.home', name='home'), 
    url(r'^(?P<lang>\w{2})/$', 'mysite.views.home') 
    url(r'^admin/', include(admin.site.urls)), 
) 

views.py

def home(request,lang='fa'): 
    language_mapping = {'en': 'en', 'ar': 'ar'} 
    selected_lang = language_mapping.get(lang, 'fa') 
    return render_to_response('index.html',{'lang':selected_lang}) 

在我的HTML我有一些<img>標籤

<img src="media/image.jpg" alt=""> 

的問題是,如果我跑我的地址一樣mysite.com,我可以看到圖像,但地址像這樣

mysite.com/fa/ 
mysite.com/en/ 
mysite.com/ar/ 

讓我的形象消失了,因爲它使像mysite.com/en/media/image.jpg

我的地址,所以,我怎樣才能從我的地址在<img>標籤去除/lang/一部分?

也許這樣的事情?

url(r'^(?P<lang>\w{2})/media' = r'^/media/') 

我不知道該在哪裏做。

回答

1

兩件事情:

  1. 您可以更改'media/img.jpg''/media/img.jpg'(注意前導斜槓),使之成爲根目錄相對URL - 從而使其始終要求mysite.com/media/img.jpg而不是附加的郎標籤。

  2. 您可以切換到使用Django的static file management,無論如何,這可能是一個更好的主意。

+0

我正在用'nginx'和'gunicorn'管理我的靜態文件。謝謝你。那'/'解決了我的問題。 – 2015-02-23 16:53:01

1

你只需要在你的HTML中使用絕對路徑。

<img src="/media/image.jpg" alt=""> 

請注意引導斜槓。