我遇到一种情况,一个缩小的js脚本试图包含另一个具有硬编码相对路径的js文件。
更准确地说:
我正在使用url模式path('room/<int:room_id>/', room, name='room')
渲染html页面,
此页面包括第一个带有<script src="{% static 'js/firstlib.min.js' %}"></script>
的js库
我的静态文件目录中有js/firstlib.min.js
,因此Django服务
http://localhost:8000/static/js/firstlib.min.js correctly
。
问题是firstlib.min.js尝试使用硬编码的相对路径,包括使用tanks/lib/otherlib.js
,
http://localhost:8000/room/139/tanks/lib/otherlib.js
在tank/*
中的任何地方,用/static/tank/*
替换firstlib.min.js
都是一个肮脏的办法。但是我想知道是否有更好的方法来解决此问题,例如通过动态重写url:
/room/<int:room_id>/<path>/somescript.js
变成/static/<path>/somescript.js
(实际上,第一个脚本试图以相同的方式包括其他几个脚本:-s)