我在Django和Django Rest框架中开发了一个API。我们需要“普通”Django中的一个页面,它可能每个月打开一次(所以静态文件不需要CDN )。我们所做的就是Gunicorn + whitenoise。
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'repo中的相关文件在/static_folder/css/edit_card.css中,在运行collectstatic后的heroku实例上的相关文件在static_media/css/edit_card.a1c6e0f9f12e.css中(以及正常版本和其他压缩文件)。
我可以手动访问这个链接url/static/css/edit_card.css,这是非常奇怪的。
当DEBUG = True运行的时候,这是很好的。在False/production中,情况并非如此。
有人能给我指明正确的方向吗?谢谢。
编辑:
Template
{% load static %}
<link rel="stylesheet" type="text/css" href={% static "css/edit_card.css" %}/>发布于 2018-08-28 23:29:21
这样的反应可能为时已晚,但我很惊讶没有人注意到这个错误。
您的模板如下:
<link rel="stylesheet" type="text/css" href={% static "css/edit_card.css" %}/>问题是没有引用href属性,而是将最后一个/作为路径的一部分。这就是为什么URL是:href=/static/css/edit_card.a1c6e0f9f12e.css/ (请注意末尾的/ )。
解决办法是:
<link rel="stylesheet" type="text/css" href="{% static "css/edit_card.css" %}" />URL在引号之间,在路径后面有一个空格。
https://stackoverflow.com/questions/46654692
复制相似问题