静态文件白噪声Heroku Django问题
我有一个用Django和Django Rest框架开发的API。我们需要一个页面在“正常”Django,这将是一个月打开一次,也许(所以不需要CDN的静态文件)。Gunicorn+whitenoise就是我们所做的静态文件白噪声Heroku Django问题,django,heroku,Django,Heroku,我有一个用Django和Django Rest框架开发的API。我们需要一个页面在“正常”Django,这将是一个月打开一次,也许(所以不需要CDN的静态文件)。Gunicorn+whitenoise就是我们所做的 collectstatic在构建阶段和构建后阶段都可以正常工作 页面上生成的url是href=/static/css/edit_card.a1c6e0f9f12e.css/,但控制台显示该资源的404未找到,并且没有应用于页面的样式 相关django设置: # Static file
collectstatic
在构建阶段和构建后阶段都可以正常工作
页面上生成的url是href=/static/css/edit_card.a1c6e0f9f12e.css/
,但控制台显示该资源的404未找到,并且没有应用于页面的样式
相关django设置:
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.10/howto/static-files/
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static_media/')
STATICFILES_DIRS = [
os.path.join(BASE_DIR + "/static_folder/"),
]
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
回购协议中的相关文件位于/static\u folder/css/edit\u card.css
运行collectstatic
后,heroku实例上的相关文件处于
static\u media/css/edit\u card.a1c6e0f9f12e.css
(连同普通版本和其他压缩文件)
我可以手动访问这个链接url/static/css/edit\u card.css
,这真是不可思议
当DEBUG=True
时,此功能正常工作。当处于False
/生产模式时,它不会
有人能给我指出正确的方向吗?谢谢
编辑:
模板
{% load static %}
<link rel="stylesheet" type="text/css" href={% static "css/edit_card.css" %}/>
{%load static%}
对于这个响应来说可能太晚了,但是我很惊讶没有人注意到这个错误
您的模板如下所示:
<link rel="stylesheet" type="text/css" href={% static "css/edit_card.css" %}/>
URL位于引号之间,路径后有一个空格。您能更明确地说明问题所在吗?因为当
DEBUG
为false
(在生产中)时,应该是这样工作的。其中一个原因是,当您部署该资产的新版本时,浏览器和CDN不使用缓存版本。您是否通过将其添加到中间件列表来启用WhiteNoise?@D.Evans是的,先生,我有。@dethos很抱歉造成混淆,我将编辑此问题。问题是,{static”/css/edit\u card.css“
在页面上生成的url显示上面提到的链接(edit\u card.112f1rf123.css
)但是,网络控制台显示404,并且没有应用于页面的样式,而文件存在于static_media
目录中。@BorkoKovacev您是否已尝试使用{%load staticfiles%}
而不是{%load static%}
?
<link rel="stylesheet" type="text/css" href="{% static "css/edit_card.css" %}" />