Статические изображения с апострофом-cms - PullRequest
0 голосов
/ 10 апреля 2019

Я прочитал Руководство по продвижению активов , и оно мне не помогло.Я хочу изменить стрелку раскрывающегося списка моего кода.

<div class="filter-dropdown">
    <select class="filter-select select-borders-styles">
        <option value="newest">Newest First</option>
        <option value="oldest">Oldest First</option>
    </select>
</div>

Этот код меньше:

.filter-dropdown{
      [...]

        .filter-select{
            background: url('/modules/my-module/public/img/my-image.png') no-repeat 96% 0;
            overflow: hidden;
            width: 240px;
            padding: 20px;
            font-size: 19px;
            -webkit-appearance: none;  /*Removes default chrome and safari style*/
            -moz-appearance: none;   /*Removes default style Firefox*/
            color: #0167C2;  

            select{
                [..]
            }
        }

        .select-borders-styles{
           [...]
        }
}

Я видел, что мне нужно добавитьИзображение на /my-module/public/img/my-image.png, я добавил его и добавляю URL с правильным путем в файл less, но он не работает.

ЕслиЯ добавляю в файл de index.js, например, когда вы добавляете .less этот код:

    self.pushAssets = function() {
      superPushAssets();
      self.pushAsset('img', 'options_arrow', { when: 'always' });
    };

он отображает эту ошибку:

    /home/kalia/Escritorio/leo-newsletter/newsletter/node_modules/apostrophe/index.js:75
        throw err;
        ^
TypeError: Cannot read property 'fs' of undefined
    at Object.self.push (/home/kalia/Escritorio/leo-newsletter/newsletter/node_modules/apostrophe/lib/modules/apostrophe-assets/index.js:497:67)

Может кто-нибудь сказать мне, что я делаюнеправильно?Спасибо.

1 Ответ

1 голос
/ 10 апреля 2019

Метод pushAsset предназначен для файлов CSS и JavaScript, а не изображений. Так что этот код не будет работать. Но вам это не нужно. Это только для объединения вещей в пакеты для доставки в один файл, который не является функцией, необходимой для вашего изображения.

Если у вас есть изображение на lib/modules/mymodulename/public/my.png, то вы можете сослаться на него с этим URL: /modules/mymodulename/my.png

Это работает, потому что Apostrophe копирует или символически связывает папки public ваших модулей с /modules/... при запуске, в зависимости от ОС.

Обратите внимание, что URL не содержит /public или /lib. Просто /modules/mymodulename/.... Вы можете иметь подкаталог images, если хотите, в этом случае это будет /modules/mymodulename/images/my.png (то есть все, что идет после public в имени файла, обязательно должно быть в URL).

...