Django 使静态根依赖于域
在我的Django应用程序中,我将staticfiles应用程序与 我的web服务器可以通过两个域访问,我希望为每个域提供不同的静态文件 我的想法是www.My\u domain.com/static/将提供Django 使静态根依赖于域,django,nginx,django-staticfiles,Django,Nginx,Django Staticfiles,在我的Django应用程序中,我将staticfiles应用程序与 我的web服务器可以通过两个域访问,我希望为每个域提供不同的静态文件 我的想法是www.My\u domain.com/static/将提供os.path.join(BASE\u DIR,“staticfiles/My\u domain/”)中的文件,反之亦然 实现这一目标的最佳方式是什么?我想到了三种解决办法: 子类化访问STATIC\u ROOT的位置,以便将域考虑在内 使用nginx将www.my\u domain.com
os.path.join(BASE\u DIR,“staticfiles/My\u domain/”)
中的文件,反之亦然
实现这一目标的最佳方式是什么?我想到了三种解决办法:
STATIC\u ROOT
的位置,以便将域考虑在内谢谢大家! 我建议使用您问题中的第三个选项。我想说的是,与其为每个站点创建不同的静态根目录,不如保持静态根目录不变,并根据您的域创建两个包含静态文件的文件夹。例如:
-- STATIC_ROOT
| -- domain_a
| -- js
| -- css
| -- img
| -- domain_b
| -- js
| -- css
| -- img
添加一个中间件,您可以在其中将域路径附加到请求:
在模板中,按如下方式使用:
{% static request.domain|add:'/js/something.js' %}
“我不认为django代码与这个案例有任何关系-这完全是nginx相关的问题,@IvanStarostin,但也可以用django代码来做,不是吗?”?目前我在Heroku上运行,没有能力配置它,因此我必须另外部署另一个nginx。如果在Django有一个简单的方法,它会让我的生活更轻松。
{% static request.domain|add:'/js/something.js' %}