Привет!
Я использую версию 2.9.0.beta11 на Ubuntu (среда разработки) и получаю следующие ошибки, связанные с этими плагинами. Без них всё работает отлично. Что мне нужно сделать, чтобы эти плагины заработали?
ActionController::RoutingError (No route matches [GET] "/assets/plugins/discourse-adplugin.js")
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/missing_avatars.rb:23:in `call'
lib/middleware/turbo_dev.rb:34:in `call'
ActionController::RoutingError (No route matches [GET] "/assets/plugins/discourse-canned-replies.js")
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/missing_avatars.rb:23:in `call'
lib/middleware/turbo_dev.rb:34:in `call'
ActionController::RoutingError (No route matches [GET] "/assets/plugins/discourse-cakeday.js")
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/missing_avatars.rb:23:in `call'
lib/middleware/turbo_dev.rb:34:in `call'
ActionController::RoutingError (No route matches [GET] "/assets/plugins/discourse-checklist.js")
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/missing_avatars.rb:23:in `call'
lib/middleware/turbo_dev.rb:34:in `call'
ActionController::RoutingError (No route matches [GET] "/assets/plugins/discourse-solved.js")
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/missing_avatars.rb:23:in `call'
lib/middleware/turbo_dev.rb:34:in `call'
ActionController::RoutingError (No route matches [GET] "/assets/plugins/discourse-spoiler-alert.js")
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/missing_avatars.rb:23:in `call'
lib/middleware/turbo_dev.rb:34:in `call'
ActionController::RoutingError (No route matches [GET] "/assets/plugins/docker_manager.js")
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/missing_avatars.rb:23:in `call'
lib/middleware/turbo_dev.rb:34:in `call'
Я тоже работаю над очень похожей проблемой в режиме разработки.
Вы нашли решение?
Похоже, что по какой-то причине этот код не выполняется или файлы оказываются не в том месте.
return mergeTrees([appTree, testTree, adminTree]);
},
_generatePluginAppTree() {
const trees = this.pluginInfos()
.filter((p) => p.hasJs)
.map(({ pluginName, directoryName, jsDirectory }) =>
this._buildAppTree({
directory: jsDirectory,
pluginName,
outputFile: `assets/plugins/${directoryName}.js`,
})
);
return mergeTrees(trees);
},
_generatePluginAdminTree() {
const trees = this.pluginInfos()
.filter((p) => p.hasAdminJs)
.map(({ pluginName, directoryName, adminJsDirectory }) =>
this._buildAppTree({
Это, в свою очередь, выглядит так, будто Ember CLI не собрал проект успешно.
app.import("node_modules/ember-source/dist/ember-template-compiler.js", {
type: "test",
});
app.import(discourseRoot + "/app/assets/javascripts/polyfills.js");
app.import(
discourseRoot +
"/app/assets/javascripts/discourse/public/assets/scripts/module-shims.js"
);
const discoursePluginsTree = app.project
.findAddonByName("discourse-plugins")
.generatePluginsTree();
const terserPlugin = app.project.findAddonByName("ember-cli-terser");
const applyTerser = (tree) => terserPlugin.postprocessTree("all", tree);
return mergeTrees([
createI18nTree(discourseRoot, vendorJs),
parsePluginClientSettings(discourseRoot, vendorJs, app),
app.toTree(),
И всё же я вижу сообщение Build successful (70398ms) – Serving on http: ....
david
(David Taylor)
17.Ноябрь.2022 15:53:38
3
Как вы запускаете серверы разработки? Вы запускаете bin/ember-cli?
Да. Однако это нестандартная установка для разработчиков: я запускаю ember-cli в отдельном контейнере, который разделяет том с Rails-сервером (изучаю, является ли это проблемой).
david
(David Taylor)
17.Ноябрь.2022 15:58:42
5
Мой главный вопрос: зачем вы это делаете?
Что стоит проверить:
Имеет ли процесс ember-cli доступ к директории плагинов?
Что включает в себя ваш общий том? Весь каталог Discourse? В частности, я имею в виду public/assets и app/assets/javascripts/discourse/dist.
Куда направляются ваши HTTP-запросы? В прокси ember-cli или напрямую к Rails-приложению? (Работать может любой из вариантов, но понимание того, как именно настроено, может помочь в отладке).
David Taylor, пост:5, тема:244940:
Что включает в себя ваш общий том? Весь каталог Discourse? В частности, я имею в виду public/assets и app/assets/javascripts/discourse/dist.
Вот моя текущая конфигурация, но давайте проверим.
David Taylor, пост:5, тема:244940:
Куда направляются ваши HTTP-запросы? В прокси Ember-cli или напрямую в приложение Rails? (работает в обоих случаях, но понимание того, как именно вы это настроили, может помочь в отладке).
Они идут в Ember, который затем проксирует запросы на порт Rails.
David Taylor, пост:5, тема:244940:
Мой главный вопрос: зачем вы это делаете?
Не спрашивайте (это учебный материал, хотя и в процессе отладки конвейера!).
Полезные направления для проверки. Мне просто было интересно, как у автора темы (OP) всё получилось.
Я сообщу о своих находках для пользы тех, кто настраивает подобные нестандартные конфигурации.
Обновление :
Ой, вот где я, кажется, напортачил!!
Я забыл добавить дополнительные плагины в оба контейнера…
Есть ли у процесса ember-cli доступ к директории плагинов?
@david , именно в этом была проблема. Я добавил множество сопоставлений локальных томов для плагинов, но забыл добавить их все в оба контейнера
Похоже, там было всё, что нужно для Ruby on Rails, но ничего не было доступно для JavaScript…
Теперь всё работает
@hyphalos , дайте знать, если у вас всё ещё возникают трудности — возможно, мы сможем помочь…