我有一个 RoR 应用程序,它使用大量单独的 .less 文件来构建我的样式。我有一个主 .less 文件 (config.less),其中包含其他文件使用的变量。我可以手动浏览每个子文件并添加@import语句,但我有很多子文件,这似乎不是最好的方法。如果我使用的话,是否有设置特定顺序的标准方法*= require_tree .?
我尝试将上面的 require 包含require_tree在内
...
*= require 'less/config'
*= require_tree .
Run Code Online (Sandbox Code Playgroud)
但我仍然在后续的 .less 文件中收到错误,抱怨它找不到值config
variable @base is undefined
(in /Users/me/project/app/assets/stylesheets/less/mixins.less)
Run Code Online (Sandbox Code Playgroud) 2013-11-03 20:30:48,342 [INFO] (30173 MainThread) [directoryHooksExecutor.py-29] [root directoryHooksExecutor info] Output from script: /usr/bin/ruby1.9 /usr/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
rake aborted!
Command failed with status (): [/usr/bin/ruby1.9 /usr/bin/rake assets:prec...]
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
Rake task failed to run, skipping asset compilation.
Run Code Online (Sandbox Code Playgroud)
如何在 AWS Elastic Beanstalk 上预编译资产?
我收到以下错误
amazon-web-services ruby-on-rails-3 asset-pipeline amazon-elastic-beanstalk
我认为 HTTP 的 ETag 正是使过时的缓存内容失效的机制。出于同样的目的,也可以使用摘要。为什么它们更好,为什么 etag 还不够?
我是java环境中的rails新手。我对轨道 3 到轨道 4 的资产管道几乎没有什么困惑。
目前我在 Rails 4.2.5 中,我在本地环境中创建了一个示例应用程序。我从 app/assets/javascripts 内部创建了一个新的 js 并从视图中引用它,一切似乎在我的本地环境中运行良好。
之后我想用生产环境测试它是如何工作的。这是我所做的步骤。
"NetworkError: 404 Not Found - http://localhost:3000/assets/application-c5c431cb7c0a202f831a634922aaf1d536712002ae74334fb03ba4698b32b84c.js"在 firebug 中收到此错误。当搜索到几个线程时,他们建议添加config.assets.compile = true。但我不认为这就是解决方案,因为它会减慢应用程序的速度。
请帮忙。
我最近在我的 Rails 应用程序中更新了一些包,现在我的资产没有被提供。相反,我收到以下错误:
Failed to load resource: the server responded with a status of 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)
我的资产是预编译的:
资产.rb
# Be sure to restart your server when you modify this file.
# Version of your assets, change this if you want to expire all your assets.
Rails.application.config.assets.version = '1.0'
# Add additional assets to the asset load path
# Rails.application.config.assets.paths << Emoji.images_path
# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
# Rails.application.config.assets.precompile …Run Code Online (Sandbox Code Playgroud) 我必须在 rails 5 应用程序中使用自定义字体Jameel Noori Nastaleeq。我以前从未在 Rails 中使用过资产管道。以下是我采取的一些步骤:
fonts文件夹app/assets,并将提取的ttf字体文件放入其中config.assets.paths << Rails.root.join("app", "assets", "fonts")在config/application.rb 添加以下内容app/assets/stylesheets/couplets.scss:
@font-face {
font-family: 'Jameel Noori Nastaleeq';
src:asset-url('JameelNooriNastaleeq.ttf') 格式("truetype");
}
虽然没有错误/警告,上述步骤没有任何效果。我是不是错过了什么。
我已经看到类似的问题Custom Font not working in Rails Asset Pipeline Integrating @font-face files into rails asset pipeline, 但他们的回答没有帮助。
我的github repo 中的完整代码
我正在开发一个 Rails 应用程序。在 Heroku 上顺利推送 git 后,该应用程序在网络浏览器中显示错误“请求超时”。
如果我在 1 分钟后重新尝试,该应用程序会在网络浏览器上非常快速地显示该页面。
配置
在我的配置下面找到
导轨 5.1.2
psql (PostgreSQL) 9.6.1
gem文件中的主要信息:
ruby '2.2.6'
gem 'rails', '~> 5.1.1'
gem 'pg', '~> 0.18'
gem 'puma', '~> 3.7'
Run Code Online (Sandbox Code Playgroud)
赫鲁库
Standard-2X dynos, Shared, 1 GB RAM
Heroku Postgres :: Brown
Memcached Cloud :free
Papertrail :free
STANDARD PLAN
Run Code Online (Sandbox Code Playgroud)
日志
第一个很长的请求的日志(注意我在测试前重新启动服务器以重现每天早上在第一个请求时附加的问题)
Aug 25 03:28:15 myapplication app/web.1: => Booting Puma
Aug 25 03:28:15 myapplication app/web.1: => Rails 5.1.2 application starting in production on http://0.0.0.0:41080
Aug 25 03:28:15 myapplication app/web.1: => …Run Code Online (Sandbox Code Playgroud) 我的 app/assets/javascripts/channels 文件夹中有一个 messages.js.erb 文件,它应该生成代码以从数据库中获取每个聊天室并为该聊天室创建频道订阅。
这是我的 messages.js.erb 文件
//**app/assets/javascripts/channels/messages.js.erb**
$(document).on('turbolinks:load', function() {
submitNewMessage();
});
<% Chatroom.all.each do |chatroom| %>
App['room' + <%=chatroom.id%>] = App.cable.subscriptions.create({channel: 'MessagesChannel', room: <%=chatroom.id%>}, {
received: function(data) {
$("[data-chatroom='" + this.chatroomId + "']").removeClass('hidden');
return $("[data-chatroom='" + this.chatroomId + "']").append(data.message);
},
setChatroomId: function(chatroomId) {
this.chatroomId = chatroomId;
}
});
<% end %>
function submitNewMessage(){
//console.log(uid);
$('textarea#message_content').keydown(function(event) {
if (event.keyCode === 13) {
var msg = event.target.value;
var chatroomId = $("[data-chatroom]").data().chatroom;
var uid = $('#uid').val();
//console.log(uid);
App['room' + chatroomId].setChatroomId(chatroomId); …Run Code Online (Sandbox Code Playgroud) javascript ruby-on-rails precompile asset-pipeline actioncable
我有一个 ruby on Rails 4.2 应用程序,并且我的资产管道在长达 2 天的时间里都面临着“令人毛骨悚然”的问题。我的产品托管在 Heroku 上,我在这里直接提到这一点,因为我认为这可能是相关的,我有他们 gem 'rails_12factor', group::production
我阅读并尝试了许多关于 Rails 资产没有编译的(太多)SO 问题的建议,但没有一个工作,因为我将进一步描述。
观察到的问题导致我提出这个 SO 问题是我的 javascript application.js 文件在生产中没有被缩小。
我怎么知道?空格仍然在这里,注释还没有被删除,applciation.js,与我的 application.css 相反,只是所有 js 文件的串联,但没有压缩/缩小已经完成。
关于 SO 的大多数问题都涉及图像、css 或 js 都没有被缩小/预编译的问题,但我的情况很特殊,因为图像、css 是预编译/缩小的,但只有 js 是一个问题并且没有被缩小。
我的js有问题吗?(请参阅下面的一些实验,我试图找出错误的原因)似乎不是
我在下面的设置将向您展示我如何处理资产(在我初学者理解的范围内):我使用守卫不断监视任何更改并预编译内容并将生成的/生成的 application-tr56d7.css(指纹)和 application- 45dsugdsy67.js((指纹)在 public/assets 中,然后当我在 git 上部署时,它会推送所有更改,包括预编译/缩小的文件,然后当我推送到 Heroku 时,我的生产资产设置告诉 Rails 部署我已经预编译的资产。我是一个初学者,很难理解所有众多的开发/生产环境资产设置,但我认为这就是您将在下面找到的代码中定义的内容。
我知道所有这些过程都在工作,因为每次我更改文件时,我都能找到一个新的 application-tr56d7.css 和一个新的 application-45dsugdsy67.js(当然是示例)(以及一个新的 css.gz 和 .js.z这必须是二进制的东西)
例如,每次我更改一个 js 文件时,守卫都会执行他的工作,我可以阅读如下内容:
I, [2018-02-09T09:53:41.140165 #130534] INFO -- : Writing /home/mathieu/rails_projects/my_app/public/assets/application-af0ab4a348e4f5545c844cfac02a0670.js
Run Code Online (Sandbox Code Playgroud)
然后可以在 public/assets 文件夹中找到新生成的 application.css 和 application.js 文件:例如
/public/assets/application-1021e7d2ea120fe40c67ec288f1c6525.js …Run Code Online (Sandbox Code Playgroud) 尝试编译时,所有图像都出现以下错误:
rails assets:precompile
Run Code Online (Sandbox Code Playgroud)
ModuleNotFoundError: Module not found: Error: Can't resolve 'core-js/modules/es.symbol' in '/***/app/javascript/packs'
Field 'browser' doesn't contain a valid alias configuration
/*/app/javascript/core-js/modules/es.symbol.scss doesn't exist
.css
Field 'browser' doesn't contain a valid alias configuration
/*/app/javascript/core-js/modules/es.symbol.css doesn't exist
.module.sass
Field 'browser' doesn't contain a valid alias configuration
/*/app/javascript/core-js/modules/es.symbol.module.sass doesn't exist
.module.scss
Field 'browser' doesn't contain a valid alias configuration
/*/app/javascript/core-js/modules/es.symbol.module.scss doesn't exist
.module.css
Field 'browser' doesn't contain a valid alias configuration
/*/app/javascript/core-js/modules/es.symbol.module.css doesn't exist
.png
Field 'browser' doesn't contain a valid alias …Run Code Online (Sandbox Code Playgroud) ruby-on-rails asset-pipeline webpack ruby-on-rails-5 webpacker
asset-pipeline ×10
heroku ×2
ruby ×2
actioncable ×1
assets ×1
caching ×1
css ×1
etag ×1
fonts ×1
http ×1
javascript ×1
precompile ×1
webpack ×1
webpacker ×1