ResourceCompressor treats protocol-relative URLs as local files
I`m just testing 8.5.1 and found out that config.compressJs =1 or config.concatentatJs = 1 crashes when using protocol-relative URLs like this:
jquery = //code.jquery.com/jquery-2.2.2.min.js
jquery.external = 1
jquery.async = 1
jquery.forceOnTop = 1
jquery.allWrap = <!--[if lte IE 8]><script async="async" src="//code.jquery.com/jquery-1.12.2.min.js"></script><![endif]--><!--[if gt IE 8]><!-->|<!--<![endif]-->
Error message is: PHP Warning: file_get_contents(/Users/pp//web///code.jquery.com/jquery-2.2.2.min.js): failed to open stream: No such file or directory in /Users/pp/web/typo3_src-8.5.1/typo3/sysext/core/Classes/Resource/ResourceCompressor.php line 284
I think the //code.... URL is recognized as local file by the compressor (createMergedFile) and I`m pretty sure this worked on TYPO3 7.
Updated by Georg Ringer almost 5 years ago
- Is Regression changed from No to Yes
See https://twitter.com/paul_irish/status/588502455530311680?lang=de: There is absolutly no reason to use protocol relative URLs if the resource is available with https!
nevertheless I fixed the bug
Updated by Markus Klein almost 4 years ago
- Status changed from Under Review to Rejected
- Target version deleted (
- Is Regression deleted (
Using protocol relative paths does not make sense with having files concatenated by the server.
The server simply has no "protocol", it is the client against the external resource, hence it has to specify a schema.