Django 1.8 CSS加载不完整

时间:2016-08-09 13:18:51

标签: python html css django

我已经查找了几乎所有关于Django CSS,JS,图像文件无法加载的解决方案。但是,我认为我的项目有所不同。

我想制作一个RWD网站,但它不能在小屏幕上工作。 没有菜单,没有更改模板。

我可以看到CSS有效,但并非完全如此。 image description here

尝试一切我能找到的解决方案。我对静态文件和路径混淆了什么是正确的级别。

Here is my project path Image

我尝试了很多方法,我删除那些没有真正参与的方法来保持代码清洁,因为有人可以帮助我。

settings.py

    TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templated-EX').replace('\\', '/')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

...

STATIC_URL = '/static/'

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

STATIC_DIRS = [
    ('css',os.path.join(STATIC_ROOT,'css').replace('\\','/') ),  
    ('js',os.path.join(STATIC_ROOT,'js').replace('\\','/') ), 
    ('images',os.path.join(STATIC_ROOT,'images').replace('\\','/') ), 
    # ('upload',os.path.join(STATIC_ROOT,'upload').replace('\\','/') ), 
    ]
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)

的index.html

{% load staticfiles %}

<!DOCTYPE HTML>
<!--
    Ex Machina by TEMPLATED
    templated.co @templatedco
    Released for free under the Creative Commons Attribution 3.0 license (templated.co/license)
-->
<html>
    <head>
        <title>Ex Machina by TEMPLATED</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <meta name="description" content="" />
        <meta name="keywords" content="" />
        <link href='http://fonts.googleapis.com/css?family=Roboto+Condensed:700italic,400,300,700' rel='stylesheet' type='text/css'>
        <!--[if lte IE 8]><script src="{% static "js/html5shiv.js" %}"></script><![endif]-->
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="/static/js/skel.min.js"></script>
        <script src="/static/js/skel-panels.min.js"></script>
        <script src="/static/js/init.js"></script>

        <link rel="stylesheet" href="/static/css/skel-noscript.css" />
        <link rel="stylesheet" href="/static/css/style.css"/>
        <link rel="stylesheet" href="/static/css/style-desktop.css"/>

此外,我还尝试向urls.py添加内容。它也无法改善。

我是Django的新手,必须失去重要的东西。我已经坚持了几天。

更新0810

好的,伙计们,

我想我比以前更清楚了。我尝试下载另一个模板并构建一个新项目。再次执行该程序。

新项目很好!所以程序是正确的。

我检查了我提到的与我的有点不同的原始模板。 不同的是html和CSS。

index.html中的原始CSS

<noscript>
            <link rel="stylesheet" href="{% static "css/skel-noscript.css" %}"/>
            <link rel="stylesheet" href="{% static "css/style.css" %}"/>
            <link rel="stylesheet" href="{% static "css/style-desktop.css" %}"/>
</noscript>

如果您在html中使用<noscript></noscript>,它就不起作用。也许我删除了<noscript></noscript>,因为Django无法使用它。

2 个答案:

答案 0 :(得分:0)

尝试在html中更改你的href,如下所示:

<link rel="stylesheet" href="{{STATIC_URL}}css/skel-noscript.css" />

如果这不起作用,请告诉我。

编辑: 你的BASE_DIR设置是什么? 您可以尝试以下设置。

# Static Files
STATIC_ROOT = join(os.path.dirname(BASE_DIR), 'staticfiles')
STATICFILES_DIRS = [join(os.path.dirname(BASE_DIR), 'static'), ]
STATIC_URL = '/static/'
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

答案 1 :(得分:0)

尝试在 index.html 文件中执行此操作:

<!DOCTYPE HTML>
{% load staticfiles %}
<!--
    Ex Machina by TEMPLATED
    templated.co @templatedco
    Released for free under the Creative Commons Attribution 3.0 license (templated.co/license)
-->
<html>
    <head>
        <title>Ex Machina by TEMPLATED</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <meta name="description" content="" />
        <meta name="keywords" content="" />
        <link href='http://fonts.googleapis.com/css?family=Roboto+Condensed:700italic,400,300,700' rel='stylesheet' type='text/css'>
        <!--[if lte IE 8]><script src="{% static "js/html5shiv.js" %}"></script><![endif]-->
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

        <script src="{% static 'js/skel.min.js' %}" type="text/javascript"></script>
        <script src="{% static 'js/skel-panels.min.js' %}" type="text/javascript"></script>
        <script src="{% static 'js/init.js' %}" type="text/javascript"></script>

        <link href="{% static 'css/skel-noscript.css' %}" rel="stylesheet">
        <link href="{% static 'css/style.css' %}" rel="stylesheet">
        <link href="{% static 'css/style-desktop.css' %}" rel="stylesheet">

您没有正确使用{% load staticfiles %}