如何在Django应用中使用来自预制index.html模板和CSS的相对路径?

时间:2018-12-20 01:34:55

标签: html css django-templates django-views relative-path

我正在使用预制的bootstrap index.html和CSS表格。在以前的文件夹结构中,index.html和所有附带的文件夹(如css,js,fonts,img等)都位于一个文件夹中。现在它们位于两个位置,如下所示。当我从本地Django开发网络服务器上以应用程序的形式打开索引页面时,它可以很好地加载索引,但是页面上的所有相关链接都被破坏了-css,js,img等...

我是Django的新手。

先前的引导文件夹结构:

      - public_web_site
         - bootstrap_1
             - css
             - fonts
             - img
             - js
             - index.html

我希望Django项目的组织方式如下:

- myproject
  - polls
  - myproject_django
  - public_web_site
     - static
          - public_web_site
             - bootstrap_1
                 - css
                 - fonts
                 - img
                 - js
          - admin
      - templates
          - public_web_site
             - index.html
          - admin           
      - admin.py
      - apps.py
      - models.py
      - urls.py
      - views.py

这有效:

{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'public_web_site/css/bootstrap.min.css' %}">

但这不是:

 <link rel="stylesheet" href="css/bootstrap.min.css">    

Not Found: /pub_boots/css/bootstrap.min.css

要重新说明问题:是否可以在某个地方添加变量或路径名以使预制模板起作用,而无需我编辑每个相对链接以使用Django {%static%}路径?还是有一种简单/更好的方法将预制的引导网站拖放到Django应用中?

1 个答案:

答案 0 :(得分:0)

如果在HTML路径中省略前面的“ /”,它将从当前URL开始查找文件。示例:

如果您从“ http://www.example.com/some-directory/somepage.html”中调用“ css / bootstrap.min.css”

浏览器将请求:http://www.example.com/some-directory/css/bootstrap.min.css

您没有发布引荐来源网址,因此可能需要检查一下。我总是使用绝对路径来确保安全,特别是因为我使用mod-rewrite。