【问题标题】:Figuring out why django can't find scripts, stylesheets, and plug-ins for my template right now找出为什么 django 现在找不到我的模板的脚本、样式表和插件
【发布时间】:2018-01-28 06:45:57
【问题描述】:

我继承了一个项目,我一直试图在我的本地计算机上正确获取文件结构,但我无法弄清楚。

我的 django 项目名为 gtr_site。在位于 .../templates/gtr_site/home.html 路径中的主页 html 文件上,我试图从名为“vendor”的文件夹及其内容中加载脚本和样式表。 home.html 中试图链接一些引导代码的文件如下:<link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">

当我第一次遇到这个问题时,我假设我可以通过在与 home.html 相同的目录中创建一个名为“vendor”的文件夹(在 templates/gtr_site/ 中),然后创建以下目录并插入引导文件到最终目录。这没有奏效。

对于供应商文件夹中的各种文件,我收到以下错误消息:

[19/Aug/2017 15:53:35] "GET /gtr/vendor/bootstrap/css/bootstrap.min.css/ HTTP/1.1" 404 1798 Not Found: /gtr/vendor/bootstrap/css/bootstrap.min.css/

所以...我最初创建一个名为“vendor”的文件夹并从那里开始的方法不起作用。

因此,我留下了一个问题:“这个 html 文件应该在哪里搜索名为 vendor 的文件夹?它能够找到一个吗?”我不一定知道如何回答这些问题。

我一直在不同位置复制和粘贴“供应商”文件夹,但没有成功。

最后一件事是,我知道 settings.py 可以更好地控制模板目录和静态目录的确切位置。但我也不确定目前需要更改什么或如何更改。我也被这样的事实吓倒了,在某些时候这在另一个人的机器上“工作”了,我不确定我的机器产生了什么不同以及我必须做出什么调整。

settings.py 中一些可能相关的行:

   BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
   INSTALLED_APPS = [
    'gtr_site.apps.GtrSiteConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
  ]


      TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [],
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
        ],
    },
},
]

     STATIC_URL = '/static/'

     STATIC_ROOT = '/srv/global-terrorism-research/gtr_site/static'

至少有人可以向我提供任何提示,以便我可以解决此问题吗?到目前为止,无论我尝试将“供应商”文件夹放在哪里,我都没有成功。如果我需要将供应商文件夹分解为其他内容...是否有文档可以帮助解释我需要用它做什么?

【问题讨论】:

    标签: html css django twitter-bootstrap


    【解决方案1】:

    模板内的链接应包含关键字static 以匹配文件夹静态内的应用程序子文件夹(静态文件夹应直接位于应用程序主文件夹中,而不是模板内)

     {% load staticfiles %}
    <link href={% static "gtr_site/vendor/bootstrap/css/bootstrap.min.css" %} rel="stylesheet">
    

    另外,url 模式应该包括这一行:

    urlpatterns = [
    ...
    ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    

    https://docs.djangoproject.com/en/1.11/howto/static-files/

    【讨论】:

    • 谢谢。也是基本的,但不要忘记在你的代码中包含 {% load staticfiles %} 否则你会得到一个错误。
    • 很抱歉之前没有提到
    猜你喜欢
    • 2022-01-15
    • 2018-04-01
    • 2013-05-15
    • 1970-01-01
    • 2011-05-03
    • 2019-11-16
    • 1970-01-01
    相关资源
    最近更新 更多