2015-02-23 50 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=""> 

请注意引导斜杠。