覆盖应用的静态文件?

2 投票
1 回答
584 浏览
提问于 2025-04-17 16:53

我正在尝试使用django-geoposition(其实就是Django本身)。我想用自己版本的静态文件geoposition.js。所以在我的项目里,我创建了一个static/geoposition/geoposition.jsSTATIC_ROOT在项目根目录下定义为static),里面放了我想要的内容。在本地开发服务器上运行得很好。

但是,当我运行python manage.py collectstatic时,原来的文件被复制过来了。我大概明白为什么会这样。现在的问题是,我该怎么替换掉这个应用自带的js文件,使用我自己的呢?不幸的是,这个应用使用了一个小部件,并在里面定义了它的Media文件,而不是从模板中来,这样我就不能轻松地覆盖它,使用我不同名字的js内容了。

1 个回答

2

你可以很简单地扩展这个小部件,并用你自己的静态文件来替换它的媒体内容:

class MyGeoWidget(GeoPositionWidget):
     class Media:
         extend = False
         css = {
               'all': ('whatever.css',)
            }
         js = ('mygeoposition.js',)

撰写回答