模板不加载静态文件

Posted

技术标签:

【中文标题】模板不加载静态文件【英文标题】:Templates not loading static files 【发布时间】:2016-02-23 20:42:43 【问题描述】:

我在加载css文件时遇到问题,在调用继承了读取css页面的base_ownsite.html的index.html之后,css没有加载......

base_ownsite.html

% load staticfiles %


<!DOCTYPE html>
<html lang="en">
<head>
<title>% block title %% endblock %</title>
<link rel="stylesheet" type="text/css" href="% static 'ownsite/css/style.css' %" />

</head>
<body>
% block content %

% endblock %

</body>
</html>

index.html

% extends 'ownsite/base_ownsite.html' %


% block content %
% if user.is_authenticated %
    <p>Jesteś zalogowany <a href='accounts/my_view'> user.username </a></p>
    <p><a href='/accounts/logout_view'>wyloguj</a></p>

% else %
    <h2>Strona główna</h2>
<a href='/accounts/login_view'>logowanie</a>
<a href='/accounts/register_user'>rejestracja</a>

% endif %
% endblock %

style.css

body 
    background: yellow;


h2 
    color: red;


p 
    color: yellow;
    

settings.py

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    "/ownsite/static",
)

我添加了我的目录的打印屏幕

enter image description here

【问题讨论】:

代码中有一个空格(见下划线字符)/css_/style Hmm in css 我在 "ownsite 有下划线,但我不知道为什么,没有任何空格:/... 【参考方案1】:

不要硬编码url,你的问题可能在STATICFILES_DIRS,改成:

STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)

还要确保你有

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

在文件的顶部

【讨论】:

我将其设置为您的建议,它需要帮助。也很奇怪,我将此路径替换为 app style.css 并显示此样式,但是当我更改此 style.css 中的某些内容时,它总是会在更改之前看到此 style.css。我还以另一个名称(如 a.css)创建文件,没关系,我做了一些更改并在页面上看到它......但我不明白为什么在项目静态文件夹和应用程序 style.css 中它不能正常工作:/ 您将静态文件保存在哪里?它在应用程序文件夹还是根目录中?只需在项目的根目录中创建静态文件夹,然后在其中创建文件夹 ownsite/css/ 并将 style.css 放在那里

以上是关于模板不加载静态文件的主要内容,如果未能解决你的问题,请参考以下文章

加载静态文件,父模板的继承和扩展

加载静态文件,父模板的继承和扩展

加载静态文件,父模板的继承和扩展

加载静态文件,父模板的继承和扩展

加载静态文件,父模板的继承和扩展

加载静态文件,父模板的继承和扩展