diff --git a/openedx/core/djangoapps/content_libraries/urls.py b/openedx/core/djangoapps/content_libraries/urls.py index b9dc05fabc84..4ffd5b0cde3c 100644 --- a/openedx/core/djangoapps/content_libraries/urls.py +++ b/openedx/core/djangoapps/content_libraries/urls.py @@ -75,9 +75,17 @@ path('pub/jwks/', views.LtiToolJwksView.as_view(), name='lti-pub-jwks'), ])), ])), - path( - 'library_assets//', - views.component_version_asset, - name='library-assets', + path('library_assets/', include([ + path( + '/', + views.component_version_asset, + name='library-assets', + ), + path( + '/', + views.component_draft_asset, + name='library-draft-assets', + ), + ]) ), ] diff --git a/openedx/core/djangoapps/content_libraries/views.py b/openedx/core/djangoapps/content_libraries/views.py index 4e48805ac5ff..deee1a36f816 100644 --- a/openedx/core/djangoapps/content_libraries/views.py +++ b/openedx/core/djangoapps/content_libraries/views.py @@ -1217,3 +1217,18 @@ def component_version_asset(request, component_version_uuid, asset_path): content.read_file().chunks(), headers=redirect_response.headers, ) + + +@require_safe +def component_draft_asset(request, usage_key_str, asset_path): + """ + Serves the draft version of static assets associated with a Library Component. + + See `component_version_asset` for more details + """ + key = LibraryUsageLocatorV2.from_string(usage_key_str) + learning_package = authoring.get_learning_package_by_key(key.lib_key) + component = api.get_component_from_usage_key(key) + publishable_entity = authoring.get_publishable_entity_by_key(learning_package.id, component.key) + component_version_uuid = authoring.get_draft_version(publishable_entity.id).uuid + return component_version_asset(request, component_version_uuid, asset_path)