Rails 4 — файл шрифтов ресурсов поставщика

У меня возникли проблемы с выяснением того, как интегрировать загрузочный файл обертки в мое приложение rails 4.

У меня есть папка в моих активах поставщика, называемая шрифтами.

В нем у меня есть несколько файлов, которые называются следующим образом:

ActionController::RoutingError (No route matches [GET] "/assets/vendor/assets/fonts/Simple-Line-Icons.woff"):

У меня есть поставщик/активы/таблицы стилей, у меня есть файл с именем simple-line-icons.css, в котором есть:

@font-face {
    font-family: 'Simple-Line-Icons';
    src:url('vendor/assets/fonts/Simple-Line-Icons.eot');
    src:url('vendor/assets/fonts/Simple-Line-Icons.eot?#iefix') format('embedded-opentype'),
        url('vendor/assets/fonts/Simple-Line-Icons.woff') format('woff'),
        url('vendor/assets/fonts/Simple-Line-Icons.ttf') format('truetype'),
        url('vendor/assets/fonts/Simple-Line-Icons.svg#Simple-Line-Icons') format('svg');
    font-weight: normal;
    font-style: normal;
}

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

Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost:3000/assets/vendor/assets/fonts/Simple-Line-Icons.ttf Failed to load resource: the server responded with a status of 404 (Not Found)

Может ли кто-нибудь увидеть, что должно произойти, чтобы заставить это работать?

В соответствии с приведенным ниже предложением у меня теперь есть:

@font-face {
    font-family: 'Simple-Line-Icons';
    /*src:url('vendor/assets/fonts/Simple-Line-Icons.eot');*/
    src:asset-url("fonts/Simple-Line-Icons.eot");
    src:asset-url("fonts/Simple-Line-Icons.eot?#iefix") format('embedded-opentype'),
    asset-url("fonts/Simple-Line-Icons.woff") format('woff'),
    asset-url("fonts/Simple-Line-Icons.ttf") format('truetype'),
    asset-url("fonts/Simple-Line-Icons.svg#Simple-Line-Icons") format('svg');

внутри simple-line-icons.css.erb

но я все еще получаю ошибку 404


person Mel    schedule 24.04.2016    source источник


Ответы (1)


добавьте .erb в конец вашего файла css, затем измените url('vendor/assets/fonts/Simple-Line-Icons.eot') на asset-url("fonts/Simple-Line-Icons.eot") и так же, как другие. Я думаю, проблема в том, что после предварительной компиляции файла rails добавит в файл случайный токен, такой как "/assets/application-908e25f4bf641868d8683022a5b62f54.js", поэтому, если вы используете 'vendor/assets/fonts/Simple-Line-Icons.eot', вы не сможете найти файл.

Обновить

измените файл simple-line-icons.css.erb на simple-line-icons.scss, затем

@font-face {
  font-family: 'simple-line-icons';
  src: asset-url('Simple-Line-Icons.eot?v=2.2.2');
  src: asset-url('Simple-Line-Icons.eot?v=2.2.2#iefix') format('embedded-opentype'), asset-url('Simple-Line-Icons.ttf?v=2.2.2') format('truetype'), asset-url('Simple-Line-Icons.woff2?v=2.2.2') format('woff2'), asset-url('Simple-Line-Icons.woff?v=2.2.2') format('woff'), asset-url('Simple-Line-Icons.svg?v=2.2.2#simple-line-icons') format('svg');
  font-weight: normal;
  font-style: normal;
}

в конце в файле application.css добавьте следующее:

*= require simple-line-icons

потому что, видимо, require_tree . не потребуется файл в папке вашего поставщика и библиотеки

person Zhiliang Xing    schedule 24.04.2016
comment
привет, я попробовал это и покажу эту попытку выше. Я все еще получаю 404 ошибки в файлах - person Mel; 24.04.2016
comment
вы находитесь в режиме производства или в режиме разработки? - person Zhiliang Xing; 24.04.2016
comment
сообщение 404 осталось прежним? потому что в вашем исходном сообщении http://localhost:3000/assets/vendor/assets/fonts/Simple-Line-Icons.ttf Failed to load resource: the server responded with a status of 404 (Not Found) явно неправильный путь - person Zhiliang Xing; 24.04.2016
comment
сообщение такое же - person Mel; 24.04.2016