If we avoid URI.merge unless we know we need it we reduce the edge cases we could encounter.
The site would need to both have "//" in the %URI{:path} and the image needs to be a relative URL.
page_url = page_url_data |> to_string
image_url =
- if is_binary(rich_media["image"]) do
- URI.merge(page_url_data, URI.parse(rich_media["image"]))
- |> to_string
+ cond do
+ !is_binary(rich_media["image"]) ->
+ nil
+
+ String.starts_with?(rich_media["image"], "http") ->
+ rich_media["image"]
+
+ true ->
+ URI.merge(page_url_data, URI.parse(rich_media["image"])) |> to_string
end
%{