【发布时间】:2018-04-14 18:47:08
【问题描述】:
我有一个 Django live 版本在生产中,我使用 Django manager.py 在本地开发。 我无法为我的静态文件找到正确的配置设置。
我所有的静态文件都在项目根目录的 /static/ 上,因为所有子应用都使用相同的样式表等等。
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'staticfiles'),
)
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
在我的实时版本中:它可以工作,因为我有一个 NGINX 规则,允许直接访问 /static/。
但是当我想在本地工作时,静态文件是 404,带有 Debug True 和 False。
我没有看到我对 staticfiles 目录的需求的兴趣(但我在这里可能有一个错误的想法)。
是否可以在 /static/(css、img、js 等)的子目录中拥有所有静态文件,并在本地和实时生产中设置可行的设置,而无需在 settings.py 中切换某些内容进行部署?
感谢您的帮助:)
【问题讨论】:
-
不太清楚你在问什么。通常你只需将它们放在你想要的静态下,这样它们就可以被 manage.py 和 devserver 访问,然后运行 collectstatic 将它们复制到某个地方以供前端服务......
-
我做了一个“collectstatic”,我的所有文件都在 /static/ 目录中,但在本地无法访问:/
-
如果我没记错的话,django 不会让您的
STATIC_URL和STATIC_ROOT名称相同。这意味着您不能将静态文件放在名为“static”的文件夹中,也不能将 url 设置为“static”。所以我认为如果您更改 url 或静态文件夹,它应该可以工作。在生产中 nginx 处理这个并且它不会到达 django 所以我认为这就是它在那里工作的原因。试试看,然后告诉我。 -
不抱歉,它不起作用。我把 STATIC_URL = '/s/'。如果我创建一个 collectstatic,Django 会返回:0 个静态文件复制到 '/Volumes/Data/Projets/sitepro/sitepro/static',1197 个未修改。
标签: python django nginx static