【问题标题】:Remove a part of url address in Django在 Django 中删除部分 url 地址
【发布时间】:2015-04-25 01:42:10
【问题描述】:

我正在开发一个多语言网页。

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 中有一些 &lt;img&gt; 标签

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

问题是如果我像mysite.com这样运行我的地址,我可以看到图像但地址像这样

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

让我的图片消失,因为它使我的地址像mysite.com/en/media/image.jpg

那么如何从&lt;img&gt; 标签中的地址中删除/lang/ 部分?

可能是这样的吗?

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

我不知道在哪里做这个。

【问题讨论】:

    标签: python django urlconf


    【解决方案1】:

    两件事:

    1. 您可以将'media/img.jpg' 更改为'/media/img.jpg'(注意前导斜杠)以使其成为相对于根的网址——从而使其始终请求mysite.com/media/img.jpg,而不是附加语言标签。

    2. 您可以改用 Django 的 static file management,从长远来看,这可能是一个更好的主意。

    【讨论】:

    • 我正在使用nginxgunicorn 管理我的静态文件。谢谢你。 / 解决了我的问题。
    【解决方案2】:

    您只需要在 HTML 中使用绝对路径。

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

    注意前面的斜线。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-21
      • 2014-01-28
      • 2017-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多