Django和Bootstrap:脱机重装页面问题(netdna.bootstrapcdn.com)

时间:2015-03-18 15:51:43

标签: django twitter-bootstrap-3 offlineapps

我有一个工作的Django项目。我有" bootstrapped"它在我的 base_html 中有点使用:

{% load bootstrap3 %}
{% bootstrap_css %}
{% bootstrap_javascript %}
{# Display django.contrib.messages as Bootstrap alerts #}
{% bootstrap_messages %} 
settings.py

中的

INSTALLED_APPS = (
    'bootstrap_toolkit',
    'bootstrap3',
    'django_admin_bootstrapped.bootstrap3',
    'django_admin_bootstrapped',             
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'jquery',
    'jquery_ui',
    'homepage',
    'simpleapp',
)

完美,如果我使用我的按钮& co在页面之间浏览。它似乎是自助式的,一切都很好!

BUT ...

我注意到,如果我的电脑处于离线状态,(仅)当我重新加载页面时(或者我在某些js中使用 parent.window.location.reload(true); ),它似乎引导!此外,我注意到,当我在线并重新加载页面时,浏览器会搜索 netdna.bootstrapcdn.com ... ,但这不是我的目标:我必须创建一个项目,可以离线

如何解决重装问题?

2 个答案:

答案 0 :(得分:4)

django-bootstrap3的默认设置指向CDN为documented

# Default settings
BOOTSTRAP3 = {

    # The URL to the jQuery JavaScript file
    'jquery_url': '//code.jquery.com/jquery.min.js',

    # The Bootstrap base URL
    'base_url': '//netdna.bootstrapcdn.com/bootstrap/3.3.1/',
    ...

您应将相关文件存储在static目录中,并设置jquery_url的{​​{1}}和base_url设置。例如:

bootstrap3

另一种方法是将BOOTSTRAP3 = { # The URL to the jQuery JavaScript file 'jquery_url': '/static/js/jquery.min.js', # The Bootstrap base URL 'base_url': '/static/css/', # The complete URL to the Bootstrap CSS file (None means derive it from base_url) 'css_url': '/static/css/bootstrap.min.css', # The complete URL to the Bootstrap CSS file (None means no theme) 'theme_url': '/static/css/bootstrap.theme.min.css', # The complete URL to the Bootstrap JavaScript file (None means derive it from base_url) 'javascript_url': '/static/js/bootstrap.min.js', css位置硬编码到模板中,例如:

js

答案 1 :(得分:0)

如果您没有在浏览器上启用缓存,则不会存储从CDN下载的CSS和JS。为了避免这种情况,要么

  1. 在浏览器中启用缓存
  2. 下载缩小的bootstrap css和js并将它们放在项目的静态目录中。然后像<script src="{% static "bootstrap.min.js" %}"></script>一样链接到他们。如果你走这条路,别忘了发布你的静态文件。