ΠΠΎΠΏΡΡΠΊΠ° ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² S3 Ρ '+'
Π² Π΅Π³ΠΎ ΠΊΠ»ΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ 404.
ΠΡΠΈΠΌΠ΅Ρ:
GET https://<cname>.imgix.net/E+P-003_D.jpeg // -> 404
GET https://<cname>.imgix.net/E%2BP-003_D.jpeg // -> 200
Π― ΠΏΠΎΠ΄ΠΎΠ·ΡΠ΅Π²Π°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΈΠ·-Π·Π° encodeURI
Π² https://github.com/imgix/imgix-core-js/blob/master/src/imgix-core-js.js#L106. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ»ΡΡ S3 ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ, ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ encodeURI
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ '+'
ΠΈ Π½Π΅ ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ ΠΈΡ
. S3, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅Ρ ΠΈΡ
ΠΊΠ°ΠΊ ΠΏΡΠΎΠ±Π΅Π»Ρ.
ΠΡΠΈΠ²Π΅Ρ @rschweizer ,
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ ΠΏΠΎΠ΄Π½ΡΠ»ΠΈ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ +
ΡΠΈΡΠΊΡΠ΅Ρ Π½Π°ΡΡΡΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ S3. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ°ΠΌΡΠΌ Π±ΡΡΡΡΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ»ΠΎ Π±Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ +
ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ URL:
client.buildURL(path, params).replace(/\+/g, '%2B')
Π― Π·Π½Π°Ρ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ, Π½ΠΎ Π·Π½Π°Ρ, ΡΡΠΎ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΡ ΠΈΡΠ΅ΠΌ Π»ΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ. ΠΠ΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ
ΠΡΠΈΠ²Π΅Ρ @sherwinski!
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ! ΠΡΠΎ ΡΠΎΠΆΠ΅ Π±ΡΡΡΡΠΎΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π» Π²ΡΠ΅ΡΠ° :)
ΠΠ°ΠΉΡΠ΅ ΠΌΠ½Π΅ Π·Π½Π°ΡΡ, Π΅ΡΠ»ΠΈ Ρ ΠΌΠΎΠ³Ρ ΡΠ΅ΠΌ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΠΌΠΎΡΡ Π² ΠΏΠΎΠΈΡΠΊΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
@rschweizer ΠΏΡΠΈΠ²Π΅Ρ : wave: ΡΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ ΠΎΡΠΊΡΡΠ»ΠΈ ΡΡΠΎΡ Π²ΡΠΏΡΡΠΊ ΠΈ ΠΎΠ±ΡΠ°ΡΠΈΠ»ΠΈ Π½Π° Π½Π΅Π³ΠΎ Π½Π°ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Π Π°Π΄, ΡΡΠΎ Π²Ρ Ρ @sherwinski Π½Π°ΡΠ»ΠΈ ΠΏΠΎΡ ΠΎΠΆΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ :)
ΠΠ²ΠΈΠ³Π°ΡΡΡ Π²ΠΏΠ΅ΡΠ΅Π΄, ΠΌΡ ΡΠΆΠ΅ ΡΡΠ°Π»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ / Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΊΡΠ°ΠΉΠ½ΠΈΠ΅ ΡΠ»ΡΡΠ°ΠΈ. Π― ΡΠΎΠ·Π΄Π°Π» Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡΠΈΠΉ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΈ ΠΌΡ ΡΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°Π΄ more elegant solution
.
Π― ΡΠΎΠ±ΠΈΡΠ°ΡΡΡ Π·Π°ΠΊΡΡΡΡ ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ, Π½ΠΎ _please_ Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ / ΡΡΠ½ΡΡΡ / ΠΎΡΠΊΡΡΠ²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΅ΡΠ΅ ΡΠ°Π·, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π²ΠΎΠΏΡΠΎΡΡ, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡΠΈΠ²Π΅Ρ @sherwinski!
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ! ΠΡΠΎ ΡΠΎΠΆΠ΅ Π±ΡΡΡΡΠΎΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π» Π²ΡΠ΅ΡΠ° :)
ΠΠ°ΠΉΡΠ΅ ΠΌΠ½Π΅ Π·Π½Π°ΡΡ, Π΅ΡΠ»ΠΈ Ρ ΠΌΠΎΠ³Ρ ΡΠ΅ΠΌ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΠΌΠΎΡΡ Π² ΠΏΠΎΠΈΡΠΊΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ.