如何在 django 中使用带有版本的 css 文件上的静态文件

Posted

技术标签:

【中文标题】如何在 django 中使用带有版本的 css 文件上的静态文件【英文标题】:how to use static file on css file with version in django 【发布时间】:2022-01-16 01:21:01 【问题描述】:

我需要帮助解决我在使用 django 静态文件时遇到的问题。 所以我下载了这个引用它的 css 样式的免费 html 模板,如下所示:

 <link rel="stylesheet" href="assets/css/vendor.bundle.css?ver=1930">
    
 <link rel="stylesheet" href="% static 'assets/css/vendor.bundle.css?ver=1930' %"> ```

meanwhile in django template, i know to reference static files like css and js without the ?ver=1930  as below

```

现在我的问题是,如果我引用为

 <link rel="stylesheet" href="% static 'assets/css/vendor.bundle.css?ver=1930' %"> ```

it doesn't load the css and if i take away the ?ver=1930 and load it like

```

它可以工作,但我的 css 坏了。请问如何解决这个问题。

【问题讨论】:

【参考方案1】:

这与您的文档结构有关。根据 Django 最佳实践,您的文档结构应该是这样的:

mysite/
    myapp/
        static/
            css
            js
            img
        __init__.py
        admin.py
        apps.py
        migrations/
        __init__.py
        models.py
        tests.py
        views.py
        manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

将 css 文件添加到 static/css 文件夹。

您的代码将是:

<link rel="stylesheet" href="% static 'css/vendor.bundle.css' %">

详细了解如何处理静态文件:Managing static files。

在投票教程中查看它是如何实现的:Django documentation

【讨论】:

以上是关于如何在 django 中使用带有版本的 css 文件上的静态文件的主要内容,如果未能解决你的问题,请参考以下文章

django 静态文件版本控制

带有省略号的 ReactJS 多行文本区域

带有 css/js 的 Django“包含”模板

Django 模板中的动态内联 CSS 样式

Django,如何将变量从 Django 管理员传递到模板?

Django 中 js 和 css 的版本控制