Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django项目模板相关css在生产中不起作用_Django_Django Deployment - Fatal编程技术网

Django项目模板相关css在生产中不起作用

Django项目模板相关css在生产中不起作用,django,django-deployment,Django,Django Deployment,我得到了以下设置: STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static') STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static', 'appname'), ) 在我的模板中,我得到了 <link rel="stylesheet" href"{% static 'appname/css/main.css' %}" /> 我的静态文件

我得到了以下设置:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static', 'appname'), )
在我的模板中,我得到了

 <link rel="stylesheet" href"{% static 'appname/css/main.css' %}" />

  • 我的静态文件夹包括默认的Django admin css和类似js的 /static/css及其工作良好

  • 我的静态文件夹包括/static/appname/css/main.css

  • 我的css仍然没有出现。 我的模板正在显示,但没有css/js。 我在我的项目文件夹下找到了所有文件夹,如“模板”、“静态”、“静态文件”

    我的默认Django静态文件显示在static/admin下的“coollectstatic”之后。但是我不知道如何在生产中使用“STATICFILES\u DIRS”来显示与项目模板相关的静态文件。
    我正在部署生产。请告知。

    collectstatic
    复制
    STATICFILES\u DIRS
    中路径下的所有内容。因此,由于您将
    appname
    放在那里,您的css文件将以“/static/css/main.css”结尾。您要做的可能是将设置更改为:

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

    像这样更改您的设置

    STATIC_URL = '/static/'
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, 'static'),
        os.path.join(BASE_DIR, 'static', 'appname'), 
    )
    
    {% load staticfiles %}
    <link rel="stylesheet" href"{% static 'appname/css/main.css' %}" />
    
    现在可以像这样加载静态文件

    STATIC_URL = '/static/'
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, 'static'),
        os.path.join(BASE_DIR, 'static', 'appname'), 
    )
    
    {% load staticfiles %}
    <link rel="stylesheet" href"{% static 'appname/css/main.css' %}" />
    
    {%load staticfiles%}
    
    我从中发现它需要在gunicorn中进行设置。本教程不是基于gunicorn的,但是关于gunicorn的链接对我来说很好。我很感谢你们的帮助,stackoverflow真是太棒了。

    你需要配置web服务器将静态重定向到该文件夹,并运行collectstaticshare共享你的目录结构。如前所述,我的Django默认静态文件正在显示。但不是我的项目静态文件。我已在上面添加了有关我的目录结构的详细信息。您在项目级别或应用程序级别有静态文件夹吗?我的意思是,您的静态文件夹位于此级别“/project/static/”或此/project/appname/static/?尝试了两种方法…它收集了静态文件夹,因为我没有拼写static/appname下的文件夹。但后来它收集了它,但生产中的域在检查元素后仍然说:“加载资源失败:服务器响应状态为404(未找到)”,js文件和其他文件也是如此。HTML很好,css for Admin也在运行。我正在使用Gunicorn和Nginx进行设置,每次进行更改时,我都会重新启动这两个服务,以确保更改生效。因此,问题只存在于与css相关的基于项目的模板中。管理员css工作正常,因为我的网站设置为Debug=False。它正在收集静态数据并显示在文件夹中。但不知怎么的,我不会现场直播。我完全按照你们的人说的做了。你们是在本地机器上的生产服务器上检查的吗?我正在生产中,正如前面提到的。