django-admin-sortable2
django-admin-sortable2 copied to clipboard
Links to static files generated in result html do not correspond to custom StaticFileStorage settings
Python 3.4.3, Django 1.9.8
I've encountered the problem using storages.backends.s3boto3.S3Boto3Storage but you can reproduce it locally:
# local default settings
STATICFILES_LOCATION = 'stat'
STATIC_URL = "https://%s/%s/" % ('my-default-local-site', STATICFILES_LOCATION)
# production settings (we put our static files to S3)
STATICFILES_STORAGE = 'my_project.MyStaticFilesStorage'
from django.contrib.staticfiles.storage import StaticFilesStorage
class MyStaticFilesStorage(StaticFilesStorage):
def __init__(self, location=None, base_url=None, *args, **kwargs):
# Try to Imitate a bucket name - ignore STATIC_URL at all by replacing base_url
super().__init__(location, base_url='http://my-prod-site/', *args, **kwargs)
In admin site you can see that the ordinary admin links point to my-prod-site (use MyStaticFilesStorage settings) whereas adminsortable2 uses url defined in STATIC_URL:
<link href="http://my-prod-site/vendor/video.js/video-js.css" type="text/css" media="all" rel="stylesheet" />
<link href="https://my-default-local-site/stat/adminsortable2/css/sortable.css" type="text/css" media="all" rel="stylesheet" />
<script type="text/javascript" src="http://my-prod-site/admin/js/core.js"></script>
<script type="text/javascript" src="http://my-prod-site/admin/js/vendor/jquery/jquery.js"></script>
<script type="text/javascript" src="http://my-prod-site/admin/js/jquery.init.js"></script>
...
</script>
<script type="text/javascript" src="https://my-default-local-site/stat/adminsortable2/js/plugins/admincompat.js"></script>
<script type="text/javascript" src="https://my-default-local-site/stat/adminsortable2/js/libs/jquery.ui.core-1.11.4.js"></script>
....
</script>