2015-02-15 2 views
0

Я пытаюсь использовать Stacey CMS в сочетании с retina.js для моего небольшого сайта с портфолио. Стейси рассказывает все изображения внутри папки проекта, которые будут добавлены на страницу. В то же время я хотел бы подавать @2x hi-dpi изображениями. Если я включу их в одну и ту же папку, Stacey добавит на страницу как обычные image.png, так и [email protected], чего я хочу избежать.Обратитесь к подпапке .htaccess

Чтобы решить эту проблему, я хочу переписать все изображения, заканчивающиеся на @2x, чтобы иметь корень /retina внутри той же папки проекта. Эта папка динамическая, т.е. существует много разных папок проекта, поэтому я бы хотел, чтобы одно правило перезаписи работало для всех.

я добрался до этой точки с некоторой помощью от пользователя переполнения стека собрата:

RewriteRule ^(.*)@2x(.*)$ /Retina/[email protected]$2 [L] 

Это, однако, не относится к подпапке исходной папки проекта. Как я могу обратиться к правильной папке?

Редактировать: В качестве альтернативы могут быть другие способы решения этой проблемы? Changing retina.js retina image path

+0

не могли бы вы объяснить немного больше, не уверен, что я получил его – Lupin

+0

@ Lupin: Stacey ищет изображения в '/ project-name'. Я хочу иметь стандартные изображения в формате dpi в этой папке, но изображения '@ 2x' внутри'/project-name/retina'. Retina.js (http://retinajs.com/), однако, хочет, чтобы изображения '@ 2x' находились в той же папке, что и стандартные изображения с разрешением dpi ('/project-name'). Чтобы поработать над этим, рекомендуется использовать правило перезаписи в .htaccess. Я хочу, чтобы это правило говорило: «эй,« @ 2x »образы находятся в подпапке стандартных изображений точек на дюйм, но вперед, и вы работаете, retina.js!» :) – Simon

ответ

0

Я думаю, что проблема, с которой вы сталкиваетесь, - это сделать бесконечный цикл переадресации. в качестве правила

RewriteRule ^(.*)@2x(.*)$ /Retina/[email protected]$2 [L] 

будет пытаться перенаправить вызов на сетчатке изображения URI как /[email protected], но снова и снова для /retina/[email protected] нового URL, как правило, только ваш проверяет, имеет ли запрашиваемый uri строку @2x.

Попробуйте добавить еще одно условие к правилу, которое будет препятствовать правило для обработки изображений, которые находятся в retina папке

RewriteCond %{REQUEST_URI} !Retina 
RewriteRule ^(.*)@2x(.*)$ /Retina/[email protected]$2 [L] 

Если папка Retina фактически в другой папке, и у вас есть несколько Retina папки, это означает, что при вызове site.com/project1/image.png версия сетчатки в site.com/project1/retina/[email protected], то вы должны попробовать это:

RewriteCond %{REQUEST_URI} !Retina 
RewriteRule ^(.*)/(.*)@2x(.*)$ /$1/Retina/[email protected]$3 [L] 

в Retina находятся внутри подпапок, первое правило перезаписи, которое мы использовали, будет иметь как имя папки & имя изображения в переменной $ 1, так что мы должны просто разбить имя папки & имя изображения на две отдельные переменные

+0

Пробовал это, но он, похоже, не работал. Но у вас проблема, не так ли? Горе со мной здесь, так как я не разработчик. Поэтому в каждой из этих подпапок (http://cl.ly/Znnc) есть папка под названием Retina. Я хочу retina.js, когда он ищет @ 2x изображения, чтобы перейти на одну папку глубже, в папку Retina в папке проекта. Является ли это выполнимым с этим правилом перезаписи? Будет ли это проще сделать непосредственно в retina.js, как я попросил здесь? Http: // StackOverflow.com/questions/28528249/change-retina-js-retina-image-path – Simon

+0

Это выполнимо наверняка, если это проще, чем манипулировать сетью retina.js - не могу сказать, что с ней не работало. хотя папка сетчатки - один общий для всех, но теперь я вижу ее не. поэтому, скажем, у нас есть изображение под названием 1.jpg, которое находится в папке cues, [email protected] на самом деле находится в папке/cues/retina? – Lupin

+0

Правильно, '1 @ 2x.jpg' находится в/cues/сетчатке. Это звучит так, будто это сработает, но, увы! это не так. Это может быть Стейси, которая не работает хорошо с retina.js. Возможно, после того, как Стэйси создал страницу, retina.js ищет '@ 2x' в неправильном месте. В итоге я использовал сжатые '@ 2x' jpg для всех изображений и уменьшил их. Размер файла меньше, чем предыдущий png. Но большое спасибо за помощь! – Simon

Смежные вопросы