-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: optionally disable path encoding #87
Comments
We are using Craft CMS and the Plugin ImageOptimize which supports integration with imgix. However, it seems like under specific circumstances, urls get encoded twice which leads to problems with german umlauts and leads to 404 for images with umlauts in the path. The related issue can be found here: nystudio107/craft-imageoptimize#395 I am not entirely sure if this is an issue in the plugin or in imgix-php - we are currently looking for a quick solution, or workaround (besides renaming the path) since we are facing this issue in a client project. Thank you for your help |
Hey @aloco , thanks for opening this issue. This seems to come from the craft-imageoptimize-imgix dependency encoding the path before passing it to They could directly parse the URL without encoding it in // in src/imagetransforms/ImgixImageTransform.php
public function getAssetUri(Asset $asset): ?string
{
// ...
$fs = $volume->getFs();
if ($fs instanceof Local) {
$assetUrl = AssetsHelper::generateUrl($fs, $asset);
// Directly parse the URL to get the path component without encoding
return parse_url($assetUrl, PHP_URL_PATH);
}
return parent::getAssetUri($asset);
} So that it doesn't get double encoded in public function getTransformUrl(Asset $asset, CraftImageTransformModel|string|array|null $transform): ?string
{
// ...
$assetUri = $this->getAssetUri($asset); // un-encoded
$url = $builder->createURL($assetUri, $params);
Craft::debug(
'Imgix transform created for: ' . $assetUri . ' - Params: ' . print_r($params, true) . ' - URL: ' . $url,
__METHOD__
);
return $url;
} That being said, path encoding on |
@luqven developer of said |
Description
Add
disablePathEncoding
functionality to the URL building logic informatPath
. This way, users can decide to opt-out of path encoding.Probably a good way of handling this would be to add a new option,
disablePathEncoding
, in the constructor that can be referenced in any of the instance methods. Specifically,createURL
,createSrcSet
.,createSrcSetPairs
,createDPRSrcSet
all need to pass this option down to theURLHelper
.The text was updated successfully, but these errors were encountered: