Всем привет!
Помогите, пожалуйста, найти решение: есть кастомный виджет, типа web-2-case. Он лежит в статик ресурсах на каждом из сендбоксов и на проде. Он как-то интегрируется к НЕ Salesforce сайту по линке, которая состоит из: SaalesforceSite/chat/resource/timestampOfStaticResource/staticResourceName.
На Salesforce значение этой линки лежит в кастом сеттингах и оттуда подбирается кодом.
Когда виджет обновляют, его перезаливают в статик ресурсы и таким образом меняется "timestampOfStaticResource"-часть линки.
Неудобство составляет то, что каждый раз при обновлении статик ресурса и изменения его линки, приходится менять ссылку на виджет, который использует тот НЕ Salesforce сайт.
Есть ли какая-то альтернатива статик ресурсам, то есть мне нужно использовать что-то, где можно хранить этот виджет, обновлять его, когда нужно, и при этом чтоб ссылка на этот ресурс была постоянной и его можно было подключить как со стороны Salesforcе, так и с того стороннего сайта. Ну и конечно же чтоб всё было секьюрно.
Может быть кто-то сталкивался или есть какие-то идеи?
Всем привет! Помогите, пожалуйста, найти решение: есть кастомный виджет, типа web-2-case. Он лежит в статик ресурсах на каждом из сендбоксов и на проде. Он как-то интегрируется к НЕ Salesforce сайту по линке, которая состоит из: SaalesforceSite/chat/resource/timestampOfStaticResource/staticResourceName. На Salesforce значение этой линки лежит в кастом сеттингах и оттуда подбирается кодом. Когда виджет обновляют, его перезаливают в статик ресурсы и таким образом меняется "timestampOfStaticResource"-часть линки. Неудобство составляет то, что каждый раз при обновлении статик ресурса и изменения его линки, приходится менять ссылку на виджет, который использует тот НЕ Salesforce сайт. Есть ли какая-то альтернатива статик ресурсам, то есть мне нужно использовать что-то, где можно хранить этот виджет, обновлять его, когда нужно, и при этом чтоб ссылка на этот ресурс была постоянной и его можно было подключить как со стороны Salesforcе, так и с того стороннего сайта. Ну и конечно же чтоб всё было секьюрно. Может быть кто-то сталкивался или есть какие-то идеи?
timestampOfStaticResource - можно опустить
timestampOfStaticResource - можно опустить
Спасибо!
Вроде работает без timestamp.
Я пробовала еще вместо значения timestampOfStaticResource вставлять текущее время. Тоже вроде как работает. Но наверное надо бы еще завтра проверить, или не из кеша подбираются данные?
Или данные в кеш кладутся по timestampOfStaticResource???
Еще возник вопрос с тем, что еще приходится менять линку, когда инстанс меняется после рефреша сендбоксов. Как вариант (но может это и не хороший вариант - пока я не поняла), брать линку со статик ресурсов с прода. Но тогда похоже придется там держать 2 статик ресурса - один для тестов, а второй как рабочую текущую версию.
Спасибо! Вроде работает без timestamp. Я пробовала еще вместо значения timestampOfStaticResource вставлять текущее время. Тоже вроде как работает. Но наверное надо бы еще завтра проверить, или не из кеша подбираются данные? Или данные в кеш кладутся по timestampOfStaticResource??? Еще возник вопрос с тем, что еще приходится менять линку, когда инстанс меняется после рефреша сендбоксов. Как вариант (но может это и не хороший вариант - пока я не поняла), брать линку со статик ресурсов с прода. Но тогда похоже придется там держать 2 статик ресурса - один для тестов, а второй как рабочую текущую версию.
Варианты с timestampOfStaticResource, со своим кастомным timestamp или вообще без это всего лишь вариант линка который кэширует браузер. Насколько я помню SF по любому из них должен отдавать актуальный статик ресурс (но не 100% уверен, давно было дело). Если я ошибаюсь, буду только рад если поправите меня
Другое дело что делать свой timestamp чтобы обходить кэш браузера это уже надо придумать что-то кастомное, так как просто пулять туда текущий timestamp отрубит браузерный кэш и ресурс будет грузиться каждый раз исключая всю прелесть кэша.
Как костыль можно сделать такой вариант (далее теоретическое изложение). Запилить простейшую VF страницу в одну строчку полезного кода - которая будет содержать к примеру вот такое
{!URLFOR($Resource.style_resources, 'styles.css')}
Если открыть такую страницу, то можно увидеть реальную ссылку с timestampOfStaticResource. Сделать эту страницу доступную извне чтобы НЕ SF сайт мог к ней достучаться. И получается что загрузка ресурса на НЕ SF сайте будет состоять из двух шагов: (1) Открытие страницы и извлечение из нее линка на статик ресурс, (2) использование полученного линка для загрузки ресурса. Но это уже немного из JS кодинга.
С инстансами после рефреша сандбокса увы сложнее. Он динамический и сложно сказать что будет после рефреша.
Поэтому я бы советовал замутить вариант попроще чем SF Static Resources (которые хороши для самого SF но не более). Халивать ваш ресурс куда-то к примеру на Amazon и использовать оттуда как в SF так и в НЕ SF. Опять же продумать про вариант версионности, примеров которых я думаю под Amazon будет явно больше чем под SF.
Варианты с timestampOfStaticResource, со своим кастомным timestamp или вообще без это всего лишь вариант линка который кэширует браузер. Насколько я помню SF по любому из них должен отдавать актуальный статик ресурс (но не 100% уверен, давно было дело). Если я ошибаюсь, буду только рад если поправите меня :) Другое дело что делать свой timestamp чтобы обходить кэш браузера это уже надо придумать что-то кастомное, так как просто пулять туда текущий timestamp отрубит браузерный кэш и ресурс будет грузиться каждый раз исключая всю прелесть кэша. Как костыль можно сделать такой вариант (далее теоретическое изложение). Запилить простейшую VF страницу в одну строчку полезного кода - которая будет содержать к примеру вот такое {!URLFOR($Resource.style_resources, 'styles.css')} Если открыть такую страницу, то можно увидеть реальную ссылку с timestampOfStaticResource. Сделать эту страницу доступную извне чтобы НЕ SF сайт мог к ней достучаться. И получается что загрузка ресурса на НЕ SF сайте будет состоять из двух шагов: (1) Открытие страницы и извлечение из нее линка на статик ресурс, (2) использование полученного линка для загрузки ресурса. Но это уже немного из JS кодинга. С инстансами после рефреша сандбокса увы сложнее. Он динамический и сложно сказать что будет после рефреша. Поэтому я бы советовал замутить вариант попроще чем SF Static Resources (которые хороши для самого SF но не более). Халивать ваш ресурс куда-то к примеру на Amazon и использовать оттуда как в SF так и в НЕ SF. Опять же продумать про вариант версионности, примеров которых я думаю под Amazon будет явно больше чем под SF.
ApexRest который возвращает PageReference.forResource('<название статик ресурса>', '<путь/до/конкретного/файла >'); Так как это полноправный PageReference, то можешь вернуть redirect (304 или 307 - кстати, какая разнница?) на последний виджет.
Timestamp нужен для кэширования.
Для решения проблемы имени инстанса, заведи MyDomain.
SFDC, конечно может быть файлсервером для чегонить мелкого, но не надо. Да и дорого.
ApexRest который возвращает PageReference.forResource('<название статик ресурса>', '<путь/до/конкретного/файла >'); Так как это полноправный PageReference, то можешь вернуть redirect (304 или 307 - кстати, какая разнница?) на последний виджет. Timestamp нужен для кэширования. Для решения проблемы имени инстанса, заведи MyDomain. SFDC, конечно может быть файлсервером для чегонить мелкого, но не надо. Да и дорого.