【问题标题】:django template won't load css and javascript filesdjango 模板不会加载 css 和 javascript 文件
【发布时间】:2014-12-30 18:42:48
【问题描述】:

我正在 django 中创建一个应用程序,一切都很好,除了一个模板。所有模板在加载 javascript 和 css 文件时都有任何问题,但有一个模板不加载任何 css 或 JS 文件。 当我输入这个模板的视图时,我犯了一个拼写错误,在我修复它之后,模板将不会加载任何 css 或 JS 文件

更新:视图定义缩进 查看

@permission_required('prov.views.configView',login_url='/login/')
def MasterFormView(request):
    form = MasterForm(request.POST or None)
    if request.method == 'POST':
       idp = request.POST['id_proveedor']
       a = request.POST['anio']
       m = request.POST['mes']
       id = Proveedor.objects.get(id_proveedor=idp)
       obj,created = Master.objects.get_or_create(id_proveedor=id,anio=a,mes=m)
       if form.is_valid(): 
          objdetrec,createddetrec = DetalleRecepcion.objects.get_or_create(id_proveedor=id,anio=a,mes=m)
          objdetcar,createddetcar = DetalleCargaArchivo.objects.get_or_create(id_proveedor=id,anio=a,mes=m)
          objdetcon,createddetcon = DetalleConci.objects.get_or_create(id_proveedor=id,anio=a,mes=m)
          objenvcon,createdenvcon = EnvioConci.objects.get_or_create(id_proveedor=id,anio=a,mes=m)
          objcer,createdcer = Certificado.objects.get_or_create(id_proveedor=id,anio=a,mes=m)
          objentcert,createdentcert = EntCertificado.objects.get_or_create(id_proveedor=id,anio=a,mes=m)
          objacepta,createdacepta = AceptCertificado.objects.get_or_create(id_proveedor=id,anio=a,mes=m)
          objrepro,createdrepro = Reproceso.objects.get_or_create(id_proveedor=id,anio=a,mes=m)
          return HttpResponseRedirect('/monitor/')

       if not created:
          obj.id_proveedor = id
          obj.anio = a
          obj.mes = m
          #-----------------------------
          objdetrec.id_proveedor = id
          objdetrec.anio = a
          objdetrec.mes = m
          #----------------------------
          objdetcar.id_proveedor = id
          objdetcar.anio = a
          objdetcar.mes = m
          #----------------------------
          objdetcon.id_proveedor = id
          objdetcon.anio = a
          objdetcon.mes = m
          #----------------------------
          objenvcon.id_proveedor = id
          objenvcon.anio = a
          objenvcon.mes = m
          #----------------------------
          objcer.id_proveedor = id
          objcer.anio = a
          objcer.mes = m
          #----------------------------
          objentcert.id_proveedor = id
          objentcert.anio = a
          objentcert.mes = m
          #----------------------------
          objacepta.id_proveedor = id
          objacepta.anio = a
          objacepta.mes = m
          #----------------------------
          objrepro.id_proveedor = id
          objrepro.anio = a
          objrepro.mes = m
          #----------------------------
          obj.save()
          objdetrec.save()
          objdetcar.save()
          objdetcon.save()
          objenvcon.save()
          objcer.save()
          objentcert.save()
          objacepta.ave()
          objrepro.save()
          return HttpResponseRedirect('/monitor/')
    return render_to_response('masterform.html',
                              {'form':form})

表格:

class MasterForm(forms.ModelForm):
      def __init__(self,*args,**kwargs):
       super(MasterForm,self).__init__(*args,**kwargs)
       self.helper = FormHelper(self)
       self.helper.layout.append(Submit('save','Grabar'))
       self.helper.layout = Layout(
        Fieldset('',
                 'id_proveedor',
                 'anio',
                 'mes',
                 Submit('save','Grabar'),
                )
       )

      class Meta:
        model = Master

网址:

 url(r'^masterform/$', 'prov.views.MasterFormView',name='masterform'),

表单更新了所有指定的模型并且工作正常,但没有样式或 JS 函数。

我不知道为什么所有其他模板都可以加载 css 文件而这个表单却不能 任何人都有相同的问题或知道如何解决此问题。

P.D.:在 firebug 中,错误是“PAGE NOT FOUND”

更新添加html模板的代码 masterform.html

{% extends 'base.html' %}
{% load crispy_forms_tags %}

{% block content %}
<div class="container">
<div class="col-sm-4"
<form method='POST' action='' class='form'>
   <div class="form-group">
        {% csrf_token %}
        {% crispy form  %}
   </div>
</form>
</div>
</div>
{% endblock %}

base.html

<!DOCTYPE html>
<html lang="en">
  <head>
   <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="../../favicon.ico">
    <title>Proveedores de Contenido</title>

    <!-- Bootstrap core CSS -->
     <link href="{{STATIC_URL|default:"/static/"}}admin/css/bootstrap.min.css" rel="stylesheet">
     <link href="{{STATIC_URL|default:"/static/"}}admin/css/custom.css" rel="stylesheet">
     <link href="{{STATIC_URL|default:"/static/"}}admin/css/jquery.dataTables.css" rel="stylesheet">
     <link href="{{STATIC_URL|default:"/static/"}}admin/css/customtable.css" rel="stylesheet">
     <link href="{{STATIC_URL|default:"/static/"}}admin/css/bootstrap-theme.min.css" rel="stylesheet">

     <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
     <script src="{{STATIC_URL|default:"/static/"}}admin/js/bootstrap.js"></script>
     <!-- script type="text/javascript" src="/static/admin/js/jquery-1.11.1.min.js"></script -->
     <script src="{{STATIC_URL|default:"/static/"}}admin/js/jquery.dataTables.js"></script>
     <script src="{{STATIC_URL|default:"/static/"}}admin/js/dataTables.bootstrap.js"></script>
  </head>

 <body>
{% block content %}{% endblock %}
{% include 'footer.html'%}

  </body>
</html>

当我创建 viwe 时,表单和模板可以正常工作并加载每个 css 和 js 文件。 后来我做了一个改变,不小心打错了一些单词。在我修复错字错误后,模板不会加载我的 css 和 js 文件。 但形式工作正常,只是没有风格。 我正在考虑重写所有(视图、表单、html模板和更改 url),看看是否有一些损坏的文件或配置

【问题讨论】:

    标签: css django django-forms django-views


    【解决方案1】:

    您似乎将自己重定向到 masterform.html。这是加载css和javascript的地方。

    编辑:

    由于您的设置不正确,无法找到文件:

    对于应用程序: STATIC_URL = '/static/'

    对于项目:STATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"), '/var/www/static/', )

    将这两个设置添加到您的设置文件中,不要忘记加载它们: {% load staticfiles %}

    在所有 html 文件的顶部。

    那么您将不再需要您的{{STATIC_URL | default}},只需使用{{ STATIC_URL}}

    Manage static files

    建议:

    创建一个{%block exta_head %} {% endblock %} 在您的主模板中,以便您的扩展模板可以添加自己的文件。

    【讨论】:

    • 我缩进了代码,仍然无法加载 css 或 js 文件。查看更新
    • 你能发布你的masterform.html吗?在你的 html 文件的头部应该有 js 文件和 css 文件的链接
    • 我添加了masterform.html和base.html这两个模板的定义。 masterform 模板扩展基本模板
    猜你喜欢
    • 1970-01-01
    • 2015-05-21
    • 2020-09-26
    • 2021-02-01
    • 1970-01-01
    • 2011-04-02
    • 2017-10-08
    • 2013-10-12
    • 2017-04-20
    相关资源
    最近更新 更多