Где хранить логотип веб-сайта?

Есть задача, куда-то разместить сохранить логотип, но нельзя создавать таблицу в БД специально для логотипа , т.к. логотип будет один, новый будет заменять старый и всё. Так же, согласно требованиям, логотип нужно хранить в виде массива байтов в БД, но, повторюсь, нельзя создавать новую таблицу.
Куда мне его сохранить?

Дополнительно:

дичайше странные требования. а функцию создавать можно?

  • храните в information_schema, дешево и сердито )
  • VasyaID, Зато справедливый )
  • VasyaID, если нужна структура, то я могу поделиться той частью, что нужно, просто не до конца понимаю зачем это.

    У меня все файлы (Документы) хранятся в виде файлов, а в БД хранится путь к ним в файловой системе. Но с логотипом другая ситуация, по этому я и задался этим вопросом

  • ThunderCat, вопрос заключается в том, как хранится данные в БД без таблицы (Что я сомневаюсь, что там можно), либо куда можно закинуть лого в БД не создавая таблицы для неё.
  • Nik Faraday, а откуда вообще такое требование возникло? (Что нужно хранить в БД в виде массива байт, но нельзя создавать новую таблицу)

    Может если понять причину - будет понятно и как решать?

  • Есть задача, куда-то разместить сохранить логотип, но нельзя создавать таблицу в БД специально для логотипа , т.к. логотип будет один, новый будет заменять старый и всё. Так же, согласно требованиям, логотип нужно хранить в виде массива байтов в БД, но, повторюсь, нельзя создавать новую таблицу.

    Я думаю вам нужно спрашивать у автора этих требований, а не на тостере. Тот кто писал эти требования либо должен знать ответ на этот вопрос, либо просто конченый. Третьего не дано. Возможно у вас уже есть какая-то таблица куда можно пристроить и логотип

  • Nik Faraday, c чего бы это другая?
    У вас хранится в базе что то типа id=42
    выдается что типа https://sitename/images/42
    так и загрузите логотип по https://sitename/images/43
  • Василий Банников, сказали так сделать. Почему? Я не знаю, хотя я предлагал другие методы решения задачи, но они не подходят
  • Константин Б., "автор задачи" определённо знает ответ, но не хочет его говорить, а сказал мне самому разбираться.

    Да, у меня есть в БД таблица, и есть так же в проекте другие файлы (Различные документы). В БД хранятся только пути к ним, сами же файлы хранятся в файловой системе. Но "автору вопроса" не подходит решение использовать лого таким же образом и просто сохранить в БД путь к нему, а нужно именно в БД его хранить.

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

  • Владимир Коротенко, да, я уже описал выше, и не только, что такой подход не подходит (Странно это звучит).
  • Nik Faraday, почему не узнал, почему автор такого решения так хочет?

    Может он вычитал что-то где-то?
    Пробовал рассказывать о потенциальных проблемах?

  • Василий Банников, я уже выпросил у него ответ, написал отдельно......

 

Веб-сайт - это набор файлов. В том числе и статический контент.
Вот положите туда.

UPD: В связи с вопросами читателей я даю расшифровку термина static content.
В типичном архетипе проекта для Spring Boot WEB этим обзывается фолдер
src/main/resources/static
куда складывают js, css, favicon и прочие одноразовые ресурсы которые относятся
к веб-приложению.

И мне кажется что логотим веб-сайта тоже можно туда положить. Надеюсь что я
был правильно понят и никого не обидел и не задел ничьи чувства.

  • VasyaID, давай - твой вариант.
  • VasyaID, обычно критикуя - предлагают.
  • VasyaID, обновил пост.
  • mayton2019 у меня все файлы (Документы) и так хранятся в виде файлов в файловой системе сервера, а в БД хранятся только пути к этим файлам. Но с логотипом другая история, его нужно куда-то закинуть в БД, и я не имею понятия, куда именно его кидать, т.к. новую таблицу нельзя создавать для него
  • Nik Faraday, давай пойдем немного издалека. как ты подключаешь css и js файлы к сайту?
  • Nik Faraday, кто тебе ставит такие задачи? Если решение существует - оно должно быть красивым. Элегантным. И в технологичным.

    А выглядит так будто на тебя скинули какой-то "глухарь" и сказали е..ись с ним. Говорил с тех-лидом на эту тему?

  • VasyaID, действительно, рекомендую снизить «токсичность» - ни к чему нагнетать. Не все люди столь великолепны и непогрешимы, как вы; с этим надо смириться; однако и на солнце есть пятна.
    Будьте благоразумны.
  • iBird Rose, я пишу на asp.net MVC, для клиентской части я использую Razor Pages. Все css/js файлы хранятся в папке статических файлов.

    Я понимаю, к чему вы клоните, но так не подходит )

    У меня есть в проекте понятие документов (Различные файлы типа .doc, .pdf, .txt, .jpg и т.д.) и они хранятся в файловой системе сервера, т.е., на самом же сервере, а в БД хранятся только пути к этим документам. И да, у меня была идея просто закинуть логотип туда же, а в БД просто добавить колонку IsLogo и всё, но такое решение не подходит, и я уже по этому поводу уведомил управляющего.

    Но мне чётко и ясно повторили требования, что логотип должен храниться в базе данных, но под него не нужно создавать новую таблицу. Так же стоит учесть, что у меня нет таблицы конфигурации или что-то подобное, по этому я в большом замешательстве, куда мне прилепить этот логотип в базу данных

  • mayton2019, это достаточно иронично) Наверное так и есть, хахаха. Да, говорил, ничего полезного не услышал((
  • Модератор, замечательно сказано, возьму себе ваше высказывание на вооружение
  • @NikFaraday

    Я понимаю, к чему вы клоните, но так не подходит )

    почему не подходит?

    Ты нас всех втянул в свои мытарства и теперь так просто фразой не отделаешся. Должно быть техническое обосование.

  • @mayton2019

    Должно быть техническое обосование

    Пока я не знаю ответа на эту задачу, но и я в этом надеюсь, что решение должно быть адекватное. Пока что всё, на что меня подталкивают мысли - это хранение данных без использования таблицы, что крайне мало вероятно (Возможно, я что-то не знаю?). Но требования остаются прежними, что меня ещё больше сбивает с толку

  • Nik Faraday, я думаю достаточно.

    Я здесь вижу не техническую а организационную проблему. Кто-то тебе скидывает задания которые не решаются. Ну по крайней мере я так себе вижу. Если ты не обманываешь. Значит ФС нельзя. Базу нельзя. Где еще осталось. В памяти ASP.Net сервлета? Почему нет груминга? Нет обсуждения архитектуры с лидом? Какая-то у вас организация душная и безпросветная.

    Поэтому обновляй резюме. Пиши заявление по собственному. Пока без даты. Клади его под клавиатуру.

    И записывайся на всякий случай к личному психоаналитику. Это тебе пригодится.

    Желаю удачи.

  • mayton2019, возьму на заметку, спасибо
  • Nik Faraday,

    Но мне чётко и ясно повторили требования, что логотип должен храниться в базе данных, но под него не нужно создавать новую таблицу. Так же стоит учесть, что у меня нет таблицы конфигурации или что-то подобное, по этому я в большом замешательстве, куда мне прилепить этот логотип в базу данных

    Такое ощущение, будто автор решен я знает, куда конкретно надо ложить.
    Он не уточняет и не отвечает на такой вопрос?

    Может автор требований просто не знает чего требует?

    Где другие члены команды?

Ответ оказался достаточно специфический...

Оказывается, логотип нужно хранить в БД в байтовом виде в таблице с ЮЗЕРАМИ, поскольку логотип мало весит и будет постоянно актуален. У меня всё. Спасибо всем, кто предложил руку к решению этой головоломки

  • А, ок. Можете не отвечать на мои комментарии а других ветках.
    Действительно решение какое-то странное
  • Василий Банников, оказалось, что моё понимание решения даже не верно. На сколько я понял изначально, мне нужно будет просто выгружать голотип вместе с юзером и все что мне осталось найти, это только способ для обновления логотипа как колонки в БД сразу для всех юзеров. Но тут я опять оказался не прав. Услышал несколько оскорблений в мой адрес, "автор задания" сказал, что хватит с него на сегодня интернета и ушёл.

    Я просто оставлю это без комментариев. Спасибо ещё раз

  • Nik Faraday, а вот если бы автор этого решения заткнулся и доверился инженерам, или хотя бы объяснил нормально почему он такое требование выдвинул - всё бы прошло нормально 🙂
  • Василий Банников, если бы так и было, данную задачу я бы решил ещё неделю назад бы 🙂
  • Nik Faraday, абсолютно)

Так же, согласно требованиям, логотип нужно хранить в виде массива байтов в БД, но, повторюсь, нельзя создавать новую таблицу.

Взаимоисключающие требования

Как вариант, если в проекте есть таблица, которая хранит файлы в binary, то можно завести в ней признак isLogo и поставить constraint, что логотип может быть только один.

Ну и вообще посмотрите какие таблицы уже есть в проекте, может приткнуть этот файл куда-то можно.

Формальные требования будут выполнены.

  • mletov весьма объективный ответ. Я бы так и поступил бы, просто у меня есть файлы (Документы) которые хранятся в виде файлов в файловой системе, а пути к ним хранятся в БД. Но у меня есть оооочень странная задача, где мне нужно закинуть в БД лого без создания таблицы.

    Если быть точнее, требования звучало типа: "Хранить в БД в бинарном виде, но новую таблицу не создавать, добавить только одно свойство".

    После вашего ответа я задумался, а что если мой тим-лид забыл, что мы файлы храним не в БД а на сервере? Какова вероятность такого?

  • Nik Faraday, лучше уточнить у тимлида.

    Можно добавить 2 свойства:
    File: binary
    IsLogo: bit

    И два constraint, что isLogo всегда только один и что не могут быть одновременно заполнены поля с путем до файла и двоичным видом. Либо одно, либо другое, но хотя бы одно.

    Можно ещё вместо isLogo уникальный строковый ключ добавить, мало ли ещё какой настроечный файл понадобится потом вытаскивать. Это будет более универсально.

  • mletov, мне нравится такое решение, я бы им воспользовался, но это не подходит, к сожалению. Есть ли вариант хранить данные в БД без использования таблицы? Это странное решение, но я уже не знаю, что думать
  • Nik Faraday,

    Есть ли вариант хранить данные в БД без использования таблицы?

    Никогда не слышал.

    Тем более, тимлид же сказал

    добавить только одно свойство

    Т е хранить надо в таблице.

    Следовательно, надо просто спросить тимлида в лоб, а не пытаться угадать.

 

Ответы:

Возможно у вас уже есть таблица с глобальными настройками для сайта. Вот туда и запихните логотип.
Но, соглашусь, требование странное. Можно так же хранить логотип на диске, можно даже в отдельной папке, и параметр в админке, для выбора/загрузки лого.

  • Сергей delphinpro спасибо за ответ.

    Можно так же хранить логотип на диске, можно даже в отдельной папке, и параметр в админке, для выбора/загрузки лого

    Что вы имеете ввиду? Просто стоит учесть, что у меня уже есть в проекте файлы (Документы типа .doc, .pdf, .txt, .jpg и т.д.), они хранятся на сервере в файловой системе, а в БД хранятся только пути к этим файлам. Но я говорил на счёт этого, вариант добавить колонку IsLogo не подходит, поскольку такой подход подразумевает хранение логотипа в файловой системе, что уже не подходит под требования.

    Возможно у вас есть вариант, как можно сохранить логотип в базе данных без использования таблицы, или какой другой подход для решения задачи?

логотип нужно хранить в виде массива байтов в БД,

Очень странное требование.
Тогда вам потребуется еще скрипт, который будет его возвращать как картинку.
Окей, Вы соберете все нужные заголовки ответа для его кеширования. Но вместе с

новый будет заменять старый

вы не можете сказать кешируей его на год, придется обрабатывать etag и modify-since
И то мы имеем ? на каждого уника - промах мимо nginx'a. Запрос в базу данных.
при его постаянной навигации еще раз в час или чаще запрос в базу и уже по короче ответ "Не изменился"

Это вместо поведения из коробки, когда он лежит файлом на сервере.

Теперь положить его в какую ту существующую таблицу.
Добавляется блобовское поле. По хорошему все существующие селекты к ней вместо
select * переписать без звездочки через список нужных в конкретном месте полей, чтобы не нагружать зря базу данных.

Куда ? Ну посмотри может есть таблица настроек в которой на сайт одна строка.

вообще если логически подходить то https://site/img/logo.png
/var/www/html/img/logo.png

Все работает как часы, никаких баз данных.
Почему это не используете?

  • Владимир Коротенко потому что есть задача, что нужно хранить лого в БД в виде массива байтов, при том, что нельзя создавать новую таблицу. Отсюда у меня выплывает вопрос, можно ли хранить данные в БД без таблицы? (Я так понимаю, что нет) По этому и обратился сюда

 

 

 

Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.

 

    • Где хранить логотип веб-сайта?Есть ответ
    • 09.04.2024
    Ответить

    Для хранения логотипа веб-сайта существует несколько распространенных подходов. Один из них - хранить логотип непосредственно на сервере, где размещен ваш сайт. Это позволяет быстро загружать логотип при открытии страницы и обеспечивает надежное хранение файла.

    Для этого вам необходимо создать отдельную папку на сервере, где будет храниться логотип. Например, вы можете назвать эту папку "images" или "logo". Затем загрузите файл логотипа в эту папку с помощью FTP или другого способа передачи файлов на сервер.

    После того, как логотип загружен на сервер, вы можете использовать его на вашем сайте, указав путь к файлу в соответствующем теге Где хранить логотип веб-сайта? на странице. Например, если логотип находится в папке "images" и называется "logo.jpg", то код для отображения логотипа на странице может выглядеть следующим образом:

    <img src="images/logo.jpg" alt="Логотип сайта">

    Еще один популярный способ хранения логотипа - использование сторонних хостингов изображений, таких как Imgur или Dropbox. Вы загружаете логотип на их серверы и затем используете прямую ссылку на изображение в вашем коде. Однако, при использовании сторонних хостингов, учтите, что доступ к логотипу будет зависеть от доступности этих сервисов.

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

    • Где хранить логотип веб-сайта?ChatGPT
    • 05.04.2024
    Ответить

    Логотип веб-сайта – это один из ключевых элементов брендинга и визуальной идентификации компании или проекта. Правильное размещение логотипа на сайте имеет большое значение для создания цельного и профессионального образа бренда перед посетителями.

    Оптимальное место для размещения логотипа на веб-сайте – это верхняя часть страницы, в левом углу. Такой способ расположения логотипа является стандартным и удобным для пользователей, так как они привыкают искать логотип именно там. Большинство пользователей ожидают увидеть логотип в верхней части страницы и кликнуть на него, чтобы вернуться на главную страницу сайта.

    Важно, чтобы логотип был размещен на всех страницах сайта, что поможет укрепить узнаваемость бренда и создать единый стиль. Также необходимо обеспечить возможность быстрого возврата на главную страницу, кликнув на логотип.

    Если на сайте предусмотрено мобильное отображение, то логотип также должен быть адаптирован для мобильных устройств и правильно отображаться на них. Важно учитывать размер и пропорции логотипа, чтобы он четко читался и был узнаваем на всех устройствах.

    Кроме того, логотип можно использовать и в других частях сайта, например, в подвале страницы или на странице контактов. Таким образом, вы можете дополнительно подчеркнуть бренд и укрепить его узнаваемость у пользователей.

    Важно помнить, что логотип – это не просто изображение, а ключевой элемент вашего бренда, который должен быть представлен на сайте с учетом всех особенностей дизайна и удобства использования для пользователей. Правильное размещение логотипа на веб-сайте поможет укрепить бренд и создать доверие у посетителей.

Оставить комментарий