Django 一些 css 无法在生产环境中工作

Django some css not working in production

我有一个 Django 应用程序。在生产中我 运行 collectstatic 除了一小块 css 之外一切都很好。这个 css 是一个问号,悬停时会显示有关应用程序功能的一些提示。 这也可能是 nginx 配置问题。但是同样,只是这一段 css 不能正常工作。

html

<div class="help-tip">
 <p> 
    some text
 </p>
</div>                               

css

/*-------------------------
    Inline help tip
--------------------------*/
.help-tip-wrapper{
  padding-top: 15px;
  padding-left: 5px;
}

.help-tip{
    text-align: center;
    background-color: #BCDBEA;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    font-size: 14px;
    line-height: 26px;
    cursor: default;
}

.help-tip:before{
    content:'?';
    font-weight: bold;
    color:#fff;
}

.help-tip:hover p{
    display:block;

    -webkit-animation: fadeIn 0.3s ease-in-out;
    animation: fadeIn 0.3s ease-in-out;

}

.help-tip p{
    display: none;
    background-color: #1E2021;
    padding: 20px;
    width: 300px;
    border-radius: 3px;
    right: -4px;
    color: #FFF;
  font-weight: normal;
    font-size: 10px;
  z-index: 100;
    line-height: 1.4;
  position: relative;
}

.help-tip p:before{
    content: '';
    width:0;
    height: 0;
    border:6px solid transparent;
    border-bottom-color:#1E2021;
    right:10px;
    top:-12px;
}

.help-tip p:after{
    width:100%;
    height:40px;
    content:'';
    top:-40px;
    left:0;
}

settings.py

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

所有 css 工作正常,除了这个。

您的 settings.py 文件有误。

它应该是这样的

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'
STATIC_DIRS = [
     os.path.join(BASE_DIR, 'static')
]

您现在还必须使用上述更改更新 nginxapach2 服务器 'staticfiles'

当您 运行 collectstatic 命令时,它现在会将您的包保存在 staticfiles 目录中,并在您 DEBUG=False 时提供。如果您的 debug=True,那么它将从 static 文件夹

服务器

您还没有使用“collectstatic”的 url 映射。所以在你的设置中,使用这种映射。 (除关键字(变量名)外可任意编辑)

STATIC_URL = '/static/'
STATICFILES_DIRS=[BASE_DIR / 'static']
STATIC_ROOT= BASE_DIR / 'staticfiles'

在此之后,运行 'collectstatic'。您将在这个特定的 url 映射文件中获得生产中的所有 css。