覆盖应用的静态文件?
我正在尝试使用django-geoposition
(其实就是Django本身)。我想用自己版本的静态文件geoposition.js
。所以在我的项目里,我创建了一个static/geoposition/geoposition.js
(STATIC_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',)