当前位置: 首页 > 知识库问答 >
问题:

如何在Django项目/应用程序中组织和加载CSS?

杜河
2023-03-14

我是Django的新手。我阅读了文档,对媒体根文件和静态根文件以及css文件和javascript文件应该放在哪里感到困惑。

你们能给我指出正确的方向吗?项目设置:

Project
     -myapp
         -model,view,and test
     -template
         - base.html
         - index.html
         - view1
         - view2
         - media
             - css
                 - style.css
                 - ie.css
             - js
             - img

     -setting.py
     -url.py

我的static\u url、static\u root、media\u url、media\u root、STATICFILES\u DIRS和STATICFILES\u FINDERS应该是什么样子?

我目前是如何加载css文件的。包含以下内容的html:

{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static user_stylesheet %}"type="text/css" media="screen"/>

那么,管理静态文件的最佳和最有效/最正确的方法是什么?谢谢大家的帮助。我感谢你的时间和努力。

共有3个答案

拓拔元徽
2023-03-14

媒体服务是Django是一种“东西”。

您可以在此处看到指向文档的链接:https://docs.djangoproject.com/en/dev/howto/static-files/

但神奇的一点如下**如果这不是在生产**你可能需要添加以下到您的urls.py底部:

from django.conf import settings

# ... the rest of your URLconf goes here ...

if settings.DEBUG:
    urlpatterns += patterns('',
        url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
            'document_root': settings.MEDIA_ROOT,
        }),
   )

对于正式服,您可以通过Web服务器(apache或其他)提供媒体老派风格,使用相同的域,但有效地完全独立于您的Django/Python站点。

谭献
2023-03-14

我建议您将所有js和css文件保存在一个名为“静态”的文件夹中,该文件夹位于应用程序文件夹之外(这就是django推荐的方式)例如,如果您将其保存在 /var/www/static下/因此,在这种情况下,这就是您的属性的样子:STATIC_DIR="/var/www/静态/"STATIC_URL="/静态/"(可以是任何东西)STATICFILES_FINDERS=('django.contrib.staticfiles.finders.FileSystemFinder',)

在模板中,您可以使用模板标记{{static\u URL}}引用静态文件夹,并将路径的其余部分附加到静态文件夹中的文件。注意,要使用{STATIC\u URL}}模板标记,需要从视图代码中传递context\u实例。

张心水
2023-03-14

静态文件是一个简单的过程:

>

  • Django将在已安装的应用程序中的任何应用程序中搜索名为static的目录,以查找静态文件。如果您有未绑定到任何应用程序的文件,您可以将它们放在单独的目录中。此目录应添加到STATICFILES\u DIRS(元组),以便django知道它。在您的情况下,您应该具有静态文件(目录=(“/主页/用户/项目/模板/媒体”)

    将django.contrib.staticfiles添加到您的INSTALLED_APPS

    现在,如果您正在使用runserver进行测试,请打开您的URL。从django复制并添加。承包商。静态文件。URL将staticfiles\u urlpatterns导入顶部,在定义完所有URL后,在文件的末尾添加staticfiles\u urlpatterns()

    您在问题中已经有了访问静态文件的正确方法。另一种方法是使用{{STATIC_URL}},并确保您使用Request estContext发送响应。如果您使用基于类的视图,则无需更改任何内容。对于您的其他普通视图方法,只需使用渲染快捷方式。

    部署时,静态URL和静态根目录非常方便。

    >

    这是系统上目录的路径。准备部署时,运行collectstatic命令,django将找到所有静态文件,并将它们转储到static\u ROOT所指向的目录中。然后,您可以将此目录放入web服务器配置的DOCUMENT\u ROOT文件夹中。然后,将URL指向此文件夹。例如,STATIC\u ROOT=/home/user/project/www/

    如果Apache配置了DOCUMENT_ROOT/var/www/,并且您的STATIC_URL设置为/str/;运行Collectstr后,将文件夹/home/user/project/www/的内容移动到/var/www/str/

    • 静态文件查找器。此设置列出了django在运行collectstatic时可以用来搜索静态文件的方法,通常您根本不会修改此设置
    • MEDIA_ROOTMEDIA_URL。这些设置控制文件系统位置,以及使用django上传的任何文件的URL前缀;这些不能与STATICFILES_DIRS相同。您需要手动处理此问题,因为集合静态不会触及这些位置。如果您在开发中测试文件上传,您可以使用django.views.static.serve()MEDIA*提供文件。

  •  类似资料:
    • 我正在尝试在我的多租户应用程序中实现假客户概念。我有两个微服务。在其中一个微服务中,我编写了从数据库获取数据的API。我需要在我的其他微服务中使用这些数据。为此,我使用了假客户概念。我需要第二个微服务加载期间的数据。但这并没有发生。我有以下错误 这是我的基于数据源的MultitenantConnectionProviderImpl。类,我在其中编写了伪客户机逻辑 这是一个虚拟客户端。我将第二个微服

    • 创建一个基于Django3的全栈项目似乎是最佳实践(或至少一种常用方法),该项目使用特定于项目的Django应用程序(而不是独立的Django应用程序),其结构如下(参见此处): 应用程序(此处:)通过以最基本的形式(没有规则、视图等)集成 和 在另一个应用程序(例如)中使用一个应用程序的逻辑(例如)可以很好地工作(例如通过中的)。 但是,如果我试图在app2的逻辑中访问app1的模型,我会得到。

    • 问题内容: 我当前的应用程序有一个JFrame,其中大约15个动作存储为JFrame中的字段。每个动作都是一个匿名类,其中一些动作相当长。 将动作分解成自己的类是否很常见(可能在称为动作的子包中)? 如果没有,通常如何驯服这种复杂性? 谢谢 问题答案: 如果您的操作可能是可重用的(例如,通过键盘快捷键,其他菜单,其他对话框等),尤其是如果它们可以直接在基础模型上工作(而不是在UI上),那么通常会更

    • 我要开发java系统,它由三个应用程序组成。这些应用程序使用相同的包。如何在IntelliJ IDEA中组织这个项目?必须在项目中所有资源都组织在一个包层次结构中,还是在库中使用不同的项目。你能告诉我专业的解决方案吗?

    • 我们使用flink从一些物联网传感器生成事件。每个传感器都可用于生成不同类型的事件(如温度、湿度等)。一比多比率(传感器- 为了丰富传感器数据,我们将连接传感器数据流和表API。只需添加带有已启用事件列表的元数据。 那么,如果某些特定的仅启用了和事件,如何将传感器数据仅发送到这两个定义的过程函数? 我想到了如下情况: > 在我的案例中,执行数据丰富过程的最佳方式是什么?将传感器数据流与表流连接(通

    • 我正在GitHub上创建一个模块化的构建(使用module-info.java),但是在我想要模块化的模块中添加一个module-info.java时,无法执行任何测试... 我怎样才能做到这一点呢? 我正在使用以下版本: junit.jupiter版本5.3.0(第一次使用版本5.2.0也不成功) maven-compiler-plugin版本3.8.0(第一次使用版本3.7.0也不成功) ma