Details
- 
    Type:
Bug
 - 
    Status: Open
 - 
    Priority:
Trivial
 - 
    Resolution: Unresolved
 - 
    Affects Version/s: 4.6
 - 
    Fix Version/s: Unscheduled
 - 
    Component/s: None
 - 
    Labels:
 
- 
        Versioning Impact:Patch (backwards-compatible bug fixes)
 - 
        Documentation Required?:None
 
Description
In the following environment:
- Drupal
 - Multi-lingual
 - Using path prefix language negotiation (ex: https://example.org/fr/civicrm/dashboard?reset=1)
 
If we install CiviCRM extensions in /vendor/civicrm/, and those extensions load custom CSS files, the URL generated for those CSS files will include the language prefix as well.
If you look at CRM/Core/Config.php, _setUserFrameworkConfig :
    if (defined('CIVICRM_UF_BASEURL')) {
      $this->userFrameworkBaseURL = CRM_Utils_File::addTrailingSlash(CIVICRM_UF_BASEURL, '/');
      //format url for language negotiation, CRM-7803
      $this->userFrameworkBaseURL = CRM_Utils_System::languageNegotiationURL($this->userFrameworkBaseURL);
[...]
Then in CRM/Extension/System.php getFullContainer(), we see :
          $containers['cmsvendor'] = new CRM_Extension_Container_Basic(
            $vendorPath,
            $this->parameters['userFrameworkBaseURL'] . DIRECTORY_SEPARATOR . 'vendor',
            $this->getCache(),
            'cmsvendor'
          );
And so userFrameworkBaseURL gets used for the URL base for CSS.