【问题标题】:Django CAN find my static files, Pycharm CANNOT resolve themDjango 可以找到我的静态文件,Pycharm 无法解析它们
【发布时间】:2017-06-28 23:05:59
【问题描述】:

我不认为这是重复的。我看过很多类似问题的答案。

请注意:运行良好,django 会找到所有静态文件。

更新:看起来这是一个 PyCharm 错误。如果我将静态移动到我的应用程序目录中,PyCharm 可以解决它。但是,我在主 src 目录中有这个静态,因为多个应用程序将使用 CSS。现在它运行了,Django 对此没有任何问题。我认为这是一个 PyCharm 错误。

PyCharm 已设置完毕,就 Pycharm 提供的 Django 项目好东西而言,其他一切似乎都可以正常工作。

Pycharm 无法解决,这意味着我不能使用自动完成,很烦人。如果我按 ctrl-space 弹出的唯一目录是 admin。这意味着 PyCharm 完全忽略了我的静态目录。

我也尝试将其设为模板目录和资源总监。那里也没有运气。

{% load static %} <!-- {% load staticfiles %} -->
...
<link rel="stylesheet" href="{% static ''%}">
<link rel="stylesheet" href="{% static 'css/skeleton.css' %}">
<link rel="stylesheet" href="{% static 'css/custom.css' %}">
...

上面的代码运行良好。 PyCharm 没有找到这些网址。

INSTALLED_APPS = [
    'django.contrib.staticfiles',

    # admin specific
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.messages',
    'django.contrib.sessions',
]
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]

STATIC_URL = '/static/'

【问题讨论】:

  • 您是否正确设置了 PyCharm 的 project structure 设置,以及它的 django 设置,尤其是。项目根目录?
  • 据我所知,唯一需要设置的内容如上图所示。
  • 在静态标签 {{ STATIC_URL }} 按 ctrl + 空格键查找可用文件夹后,执行相同操作,直到找到所需文件。进行更改时也不要忘记运行 collectstatic
  • 有点晚了,但是..我对 Flask 也有同样的问题。在设置页面Languages &amp; Frameworks \ Template Language中将模板语言设置为“jinja2”,错误消失,文件被正确识别。也许Django的模板也有一个设置。

标签: python css django pycharm django-staticfiles


【解决方案1】:

如果您根据 Django 文档正确设置了所有内容: https://docs.djangoproject.com/en/3.1/howto/static-files/

然后您可以尝试显式设置静态文件夹以帮助 IDE,例如:

STATICFILES_DIRS = (
    BASE_DIR / "app1/static",
    BASE_DIR / "app2/static",
)

这对我有用很多次。 IntelliJ 无法自动找到我的应用程序的静态文件。

【讨论】:

    【解决方案2】:

    签入 settins.py

    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'your_app/static/')
    ]
    

    并添加

    STATIC_ROOT = os.path.join(BASE_DIR, '/static/')
    

    Pycharm 使用此设置。

    【讨论】:

      【解决方案3】:

      我用过:

      1. STATIC_ROOT = os.path.join(BASE_DIR, "static_deployment")

      2. python manage.py collectstatic命令

      所以我做了从开发到部署配置需要做的事情。

      pyCharm 现在可以正常工作并且可以查看静态文件

      是的,如果您经常更改静态文件,这不是最佳解决方案,但可以帮助使用 pyCharm 和 Django 进行开发...

      【讨论】:

        【解决方案4】:

        这是解决问题的关键:Pycharm 需要知道您当前使用的设置文件的位置。看图片。

        还要确保您的设置文件中的所有设置均正确无误。看图。

        【讨论】:

          【解决方案5】:

          尝试加载您的静态文件:

          {% load staticfiles %}
          

          并将您的链接设置为:

          <link rel="stylesheet" type="text/css" href="{% static "css/default.css" %}">
          

          【讨论】:

            【解决方案6】:

            在某些情况下,这种方式可以工作:

            &lt;link href="{{ STATIC_URL }}" rel="stylesheet" type="text/css"&gt;

            【讨论】:

            • 附加选项:使用字符串:STATICFILES_DIRS = ('static', os.path.join('static', 'admin'),) - 我之前的设置有: STATIC_ROOT = os.path.join (BASE_DIR, 'static') STATICFILES_DIRS = (os.path.join(STATIC_ROOT, 'admin'),)
            【解决方案7】:

            PyCharm 识别我的静态文件以配置 settings.STATIC_ROOT,如下所示

            STATIC_URL = '/assets/'
            
            STATIC_ROOT = os.path.join(BASE_DIR, 'static')
            

            【讨论】:

            • “我也尝试将其设为模板目录和资源总监。那里也没有运气。” - 我提到我已经这样做了。是的,它已按照您的方式设置。
            猜你喜欢
            • 2021-10-03
            • 1970-01-01
            • 1970-01-01
            • 2019-08-24
            • 2018-06-05
            • 1970-01-01
            • 2015-12-07
            • 2017-10-20
            相关资源
            最近更新 更多