Я пишу веб-сайт, который будет иметь несколько скинов. Каждый скин имеет свою собственную таблицу стилей. Я бы хотел, чтобы скин определялся с помощью переменной GET, чтобы этот URL:
whatever?skin=foo
приведет к отображению страницы, содержащей этот HTML-код в заголовке:
<link rel="stylesheet" type="text/css" href="/site_media/foo.css"/>
(Обычно я хочу, чтобы скин определялся предпочтениями пользователя, но я также хочу сделать это таким образом, чтобы пользователь мог предварительно просмотреть, как будет выглядеть новый скин, а также для облегчения его разработки. .)
Это довольно легко сделать в Django, например, вы можете использовать шаблон с этой строкой:
<link rel="stylesheet" type="text/css" href="/site_media/{{skin}}.css"/>
И такой вид:
def whateverView(request):
""" called by URL /whatever """
skin = request.GET.get('skin', "default")
c = RequestContext(request, {'skin': skin})
html = whateverTemplate.render(c)
return HttpResponse(html)
Но я не хочу делать это так, потому что мне пришлось бы добавлять один и тот же код к каждому представлению, что нарушило бы СУХОЙ.
Итак, есть ли способ сделать это так, чтобы он работал на всех моих страницах, а код писался только один раз?