Изменить значок в Liferay 7 с Tomcat - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть проект Liferay 7, и я хотел бы изменить значок браузера на пользовательский.Я создал файл portal-ext.properties и установил свойство theme.shortcut.icon=myfavicon.ico.Хотя я не вижу пользовательский значок на моем сайте.

Не могли бы вы сказать мне, где поместить мой файл .ico в каталог tomcat?Каков путь для theme.shortcut.icon к моему изображению?

Кроме того, куда вы предлагаете поместить файл portal-ext.properties?

1 Ответ

0 голосов
/ 18 ноября 2018

Значок должен быть частью вашей темы. Вот как выяснить, что делать: проверьте исходный код Liferay (здесь у меня есть исходный код 7.1), результаты довольно легко просмотреть, но я сокращаю вывод grep для ясности:

olaf@tp:~/src$ grep -r "theme.shortcut.icon" .
./portal-kernel/.../PropsKeys.java:      public static final String THEME_SHORTCUT_ICON = "theme.shortcut.icon";
./portal-impl/src/portal.properties:    theme.shortcut.icon=favicon.ico
...
olaf@tp:~/src$ grep -r "THEME_SHORTCUT_ICON" .                                                                       
./portal-web/.../themes/top_head.jsp:<link data-senna-track="temporary" href="<%= themeDisplay.getPathThemeImages() %>/<%= PropsValues.THEME_SHORTCUT_ICON %>" rel="Shortcut Icon" /> 

Поскольку это трудно читать, несмотря на сокращение строк, путь к ярлыку конструируется как <%= themeDisplay.getPathThemeImages() %>/<%= PropsValues.THEME_SHORTCUT_ICON %>. В интересах простоты сопровождения, я бы предложил создать свою собственную тему (почти все так делают) и просто использовать стандартное имя файла и заменить это изображение в своей теме, и все будет готово.

Когда вы спрашиваете о том, «куда поместить изображение в tomcat»: в Liferay не следует ожидать, что он будет обслуживать обычные веб-приложения, фактически темы обычно обслуживаются из содержимого OSGi. Вы можете легко проверить это, перейдя на обслуживаемую страницу и выполнив поиск favicon: если путь содержит /o/, это указывает на механизм OSGi для его обслуживания, например, в файловой системе Tomcat нет эквивалента (в любом случае это плохая практика - шутить над этими файлами: скорее всего, вы забудете их во время следующего обновления и потеряете изменения).

Глядя на мою стандартную установку, http://localhost:8080/o/classic-theme/images/favicon.ico - это место, откуда подается фавикон, и действительно, это то, что /o/. Таким образом, ответ таков: добавьте значок в свою собственную тему, и вам даже не нужно будет менять его имя через найденное свойство.

Но то, как создать хорошо обслуживаемую систему с правильно разделенным содержимым (между вашим и обычным Liferay), вероятно, выходит за рамки этого ответа.

В качестве крайнего, не рекомендуемого, быстрого исправления вы можете установить значение в portal-ext.properties равным

theme.shortcut.icon=../../../myfavicon.ico

и замените иконку в коте webapps/ROOT/myfavicon.ico. Но не плачь позже, когда случайно перезаписываешь его в обновлении.

...