Django可以找到我的静态文件,但Pycharm无法解析它们。

13

我不认为这是一个重复问题。我已经查看了很多类似问题的答案。

请注意:这个程序完全正常运行,django可以找到所有的静态文件。

更新:看起来这是PyCharm的一个bug。如果我把静态文件夹移到我的应用程序目录中,PyCharm就能解析它。但是,我将这个静态文件夹放在主src目录下,因为多个应用程序将使用CSS。目前它能正常运行,并且Django没有任何问题。我认为这是PyCharm的一个bug。

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无法找到URL地址。

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的项目结构设置以及它的Django设置,特别是项目根文件夹? - user2390182
据我所知,唯一需要设置的就是上面显示的图片。 - Michael Bruce
在静态标记 {{ STATIC_URL }} 后按下 ctrl + space 查找可用文件夹,一直重复此步骤直到找到所需的文件。另外,在进行更改时不要忘记运行 collectstatic。 - Josh
有点晚了,但是我也遇到了Flask的同样问题。在设置页面Languages & Frameworks \ Template Language中将模板语言设置为“jinja2”,错误消失了,文件也被正确识别。也许Django的模板也有相应的设置。 - Erenor Paz
7个回答

11

以下是解决问题的关键:Pycharm需要知道你正在使用的设置文件位于哪里。请参见图片。

在此输入图像描述

另外,请确保你的设置文件已正确设置。请参见图片。

在此输入图像描述


对于 PyCharm v2021.2:如果您启动一个 Django 项目,这个设置将被正确解释。看起来这个问题已经得到解决(或者 OP 的项目没有设置为 Django 项目)。 - Carewen

2
在某些情况下,这种方法可以起作用:

PyCharm static autocomplete


附加选项:使用字符串:STATICFILES_DIRS =('static',os.path.join('static','admin'),)- 我之前的设置为:STATIC_ROOT = os.path.join(BASE_DIR,'static')STATICFILES_DIRS =(os.path.join(STATIC_ROOT,'admin'),) - trianglesis

1
如果您根据Django文档设置了一切正确的内容,请参阅: https://docs.djangoproject.com/en/3.1/howto/static-files/ 那么您可以尝试“明确地”设置静态文件夹以帮助IDE,例如:
STATICFILES_DIRS = (
    BASE_DIR / "app1/static",
    BASE_DIR / "app2/static",
)

这对我很有帮助。IntelliJ无法自动找到我的应用程序的静态文件,这种方法在许多情况下都有效。

0

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

STATIC_URL = '/assets/'

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

我也尝试过将其设置为模板目录和资源目录。但是那里也没有运气。- 我提到我已经这样做了。是的,它设置得和你一样。 - Michael Bruce

0

我使用了以下代码:

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

  2. python manage.py collectstatic 命令

这样我就完成了从开发环境到部署环境的配置。

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

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


0

尝试加载静态文件:

{% load staticfiles %}

将你的链接设置为:

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

-2

请在settins.py中检查

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

并添加

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

Pycharm使用这些设置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接