无法加载静态文件

2024-04-25 13:12:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图获取静态文件为我的网站,但似乎没有任何工作,甚至其他stackoverflow答案。 请帮忙。你知道吗

你知道吗设置.py-你知道吗

STATIC_URL = '/static/'

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

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

文件存在于: 父文件夹>;静态>;静态目录>;css>;封面.css你知道吗

HTML

<html lang="en">
{% load staticfiles %}
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="Aman Turate">
<title>Aman Turate - Resume</title>
<link rel="stylesheet" href="{% static 'css/cover.css' %}">

Tags: 文件pathnamegtbaseosdir静态
2条回答

这里有几件事需要考虑,我不确定哪一件适用,因为我只是对你的情况做一些纯粹的假设,而不知道:

  1. BASE_DIR设置为什么
  2. 你跑过manage.py collectstatic
  3. 您的服务器设置是什么?或者您只是在使用django开发服务器?你知道吗
  4. 你要链接的文件实际放在哪里

无论如何,这里有一些信息,我希望会有用。我将打破如何设置文件与您的模板文件,希望这将有助于您调试您的问题。你知道吗

STATIC_URL = '/static/'>;此值将附加到模板中链接的静态文件中。它是域名后的相对url。因此{% static 'css/styles.css' %}在加载时将在html页面中呈现为/static/css/styles.css。你知道吗

STATIC_ROOT是文件在磁盘上的绝对路径。它告诉django在运行manage.py collectstaticsee here for details.时,将从应用程序收集的所有静态文件放在何处

STATICFILES_DIRS告诉django在哪里可以找到项目静态文件。默认情况下,Django将在每个注册的应用程序中查找static目录,并在其中收集文件,然后放入STATIC_ROOT文件夹。如果您想将静态文件放在项目的另一个目录中,并且希望django知道这一点,那么可以在这个config变量中列出这些路径。你知道吗

使用您的代码:

STATIC_URL = '/static/'

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

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

{% static 'css/cover.css' %}正在转换为/static/css/cover.css,您告诉django根目录收集静态文件是<your BASE_DIR>/static/static_root,因此在这里您可以看到位置中可能存在不匹配。我也不知道你是否跑过collectstatic。您的STATICFILES_DIR只是要在<your BASE_DIR>/static/static_root中查找静态文件,然后将它们放入<your BASE_DIR>/static/static_root。。。如果这有道理的话。你知道吗

这对我有用。更新您的设置.py为了这个

.........
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
.........

确保静态文件夹位于根目录中(即管理.py是)

相关问题 更多 >