diff --git a/mo/web/__init__.py b/mo/web/__init__.py
index b4b09f4dc41efa41333982ce6ae15f2a945ba140..a5d48e758e40c038f99625631e838fd2984da40b 100644
--- a/mo/web/__init__.py
+++ b/mo/web/__init__.py
@@ -14,6 +14,7 @@ import werkzeug.formparser
 import mo
 import mo.config as config
 import mo.db as db
+import mo.ext.assets
 import mo.jobs
 import mo.rights
 import mo.users
@@ -107,6 +108,15 @@ def setup_logging():
 setup_logging()
 
 
+# Incializace assetového mechanismu
+mo.ext.assets.Assets(app, url_prefix='/assets', asset_dir=static_dir)
+
+app.assets.add_assets([
+    'bootstrap.min.css',
+    'mo.css',
+])
+
+
 # Inicializace požadavků a nucená autorizace
 
 class NeedLoginError(werkzeug.exceptions.Forbidden):
diff --git a/mo/web/jinja.py b/mo/web/jinja.py
index 6b10303d4599e72bbcd3f278885a702f8b68cf23..860146355db7d45a503fd46826d947eab32a9366 100644
--- a/mo/web/jinja.py
+++ b/mo/web/jinja.py
@@ -1,4 +1,4 @@
-# Konfigurace Jinjový šablon a pomocné funkce
+# Konfigurace Jinjových šablon a pomocné funkce
 
 from flask import url_for
 from markupsafe import Markup
@@ -45,6 +45,7 @@ app.jinja_env.globals.update(Markup=Markup)
 
 app.jinja_env.globals.update(contest_breadcrumbs=contest_breadcrumbs)
 app.jinja_env.globals.update(place_breadcrumbs=place_breadcrumbs)
+# Funkce asset_url se přidává v mo.ext.assets
 
 
 @app.template_filter()
diff --git a/mo/web/templates/base.html b/mo/web/templates/base.html
index b87201488a68818bf73c55ee3e08391c563453b5..4413fc3dcce773096cbf69aaab6df90900822b1d 100644
--- a/mo/web/templates/base.html
+++ b/mo/web/templates/base.html
@@ -2,8 +2,8 @@
 <html>
 <head>
 	<title>Odevzdávací systém MO: {% block title %}{% endblock %}</title>
-	<link rel=stylesheet href="{{ url_for('static', filename='bootstrap.min.css') }}?v=2" type='text/css' media=all>
-	<link rel=stylesheet href="{{ url_for('static', filename='mo.css') }}?v=7" type='text/css' media=all>
+	<link rel=stylesheet href="{{ asset_url('bootstrap.min.css') }}" type='text/css' media=all>
+	<link rel=stylesheet href="{{ asset_url('mo.css') }}" type='text/css' media=all>
 {% block head %}{% endblock %}
 </head>
 <body>