Ошибка 404 (не найдена) для ресурсов в Rails 6 в Dev - PullRequest
1 голос
/ 12 января 2020

Я более недели пытаюсь поместить пользовательский шаблон в приложение Rails в версии 6. При использовании Yarn или прямых ссылок в html ресурсы не найдены.

GET http://localhost: 3000 / активы / поставщики / iconfonts / mdi / css / materialdesignicons net :: ERR_ABORTED 404 (не найдено)

Активы находятся внутри Папка поставщика. Обратите внимание, что внутри папки находится еще один файл, который называется «vendors», так что это не ошибка.

У меня есть в приложении. js

require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")

require("jquery")
require("popper.js")
require("bootstrap")

require('vendors/js/vendor.bundle.base')
require('vendors/js/vendor.bundle.addons')
require('js/shared/off-canvas')
require('js/shared/misc')

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

Это путь, по которому шаблон используется.

Мое приложение. css is:

/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *
 *= require_tree .
 *= require_self
 */

 @import "vendors/iconfonts/mdi/css/materialdesignicons";
 @import "vendors/iconfonts/ionicons/css/ionicons";
 @import "vendors/iconfonts/typicons/src/font/typicons";
 @import "vendors/iconfonts/flag-icon-css/css/flag-icon";
 @import "vendors/css/vendor.bundle.base";
 @import "vendors/css/vendor.bundle.addons";

 @import "css/shared/style";
 @import "css/demo_1/style";

Но я пробовал и другие способы, используя require, и, как я уже говорил, связывая его непосредственно внутри HTML, сейчас это выглядит так:

<!DOCTYPE html>
<html>
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>School</title>
    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>

    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_packs_with_chunks_tag 'application' %>
    <link rel="shortcut icon" href="/images/favicon.png" />
  </head>
  <body>
...

Я уже запускаю команды: rails webpacker:install rails assets:precompile Кроме того, я изменил application.rb, добавив config.serve_static_assets = true, но, похоже, ничего не работает, у меня всегда есть страница без тематики.

Версия Rails: 6.0.2.1

Ruby версия: 2.6.5p114 (версия 2019-10-01 67812) [x64-mingw32]

Версия узла: v12.14.1

Версия пряжи: 1.21.1

SO: Windows 10

Я не знаю, что я могу сделать, чтобы исправить эту ошибку "Not Found".

1 Ответ

0 голосов
/ 12 января 2020

Использование Rails-U JS в JS модулях (Rails 6 с веб-упаковщиком)

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

app / javascript / packs / application. js

...