我用的是Rails 4.2 Ruby 2.2
我生成了一个新的应用程序使用:rails的新应用程序-Skip-链轮
我所有的Gulp任务都成功运行(其中很多任务:从Gulp changed和Gulp livereload到Gulp minify css、Gulp uncss和其他)。
使用gulp rev all,我能够生成具有MD5指纹命名约定的所有资产。
它们被正确保存到rev-manifest.json
app/assets/rev-manifest.json:
{
"rev-manifest.json": "rev-manifest.9680cee8.json",
"images/measurement.png": "images/measurement.cedb4145.png",
"images/measurement2.png": "images/measurement2.cedb4145.png",
"scripts/chachin.js": "scripts/chachin.5f30b461.js",
"stylesheets/chachin.scss": "stylesheets/chachin.4c7c499d.scss"
}
app/helpers/application_helper.rb
module ApplicationHelper
def stylesheet_link_tag(url, options={})
url = AssetManifest.stylesheet_path(url)
super(url, options)
end
def crossorigin_javascript_include_tag(url, options={})
url = AssetManifest.javascript_path(url)
super(url, options)
end
def image_tag(url, options={})
url = AssetManifest.asset_path(url)
super(url, options)
end
def image_path(url, options={})
url = AssetManifest.asset_path(url)
super(url, options)
end
def image_url(url, options={})
url = AssetManifest.asset_path(url)
super((ActionController::Base.asset_host || "") + url, options)
end
end
config/initializers/asset_manifest.rb
class AssetManifest
def self.manifest
if File.exists?("app/assets/rev-manifest.json")
@manifest ||= JSON.parse(File.read("app/assets/rev-manifest.json"))
end
end
def self.stylesheet_path(url)
if AssetManifest.manifest
url += ".css" unless url.end_with?(".css")
AssetManifest.manifest[url] || url
else
url
end
end
def self.javascript_path(url)
if AssetManifest.manifest
url += ".js" unless url.end_with?(".js")
AssetManifest.manifest[url] || url
else
url
end
end
def self.asset_path(url)
if AssetManifest.manifest
AssetManifest.manifest[url] || url
else
url
end
end
end
我错过什么了吗?
将Rails.root
合并到资产清单文件的路径中可能是个好主意。
以下是我所做的:
config/initializers/asset_manifest.rb
class AssetManifest
MANIFEST_FILE = "rev-manifest.json"
class << self
def manifest
@manifest ||= read_manifest(manifest_file_path)
end
def stylesheet_path(url)
url += ".css" unless url.end_with?(".css")
AssetManifest.manifest[url] || url
end
def javascript_path(url)
url += ".js" unless url.end_with?(".js")
AssetManifest.manifest[url] || url
end
def asset_path(url)
AssetManifest.manifest[url] || url
end
private
def manifest_file_path
File.join(Rails.root, "app", "assets", MANIFEST_FILE)
end
def read_manifest(path)
if File.exists?(path)
JSON.parse(File.read(manifest_file_path))
else
{}
end
end
end
end
帽子提示https://bugsnag.com/blog/replacing-the-rails-asset-pipeline-with-gulp关于如何使用大口而不是链轮作为资产管道的伟大介绍。
问题内容: 我遇到了有关monkey修补Django的帖子: 我知道这不是理想的选择,最好User通过单独的模型添加字段和函数Profile。 话虽如此,我只想了解这是如何工作的: 我将把monkey补丁代码放在哪里? 代码何时运行-仅运行一次?每个Python解释器启动一次?每个请求一次? 大概我仍然需要更改数据库架构。因此,如果我放下桌子运行,会syncdb“知道”是否已添加新字段吗?如果没有
问题内容: 我遇到了有关猴子修补Django的帖子: 我知道这不是理想的选择,最好通过单独的模型添加字段和函数。 话虽如此,我只想了解这将如何工作: 我将把monkey补丁代码放在哪里? 代码何时运行-仅运行一次?每个Python解释器启动一次?每个请求一次? 大概我仍然需要更改数据库架构。因此,如果我放下桌子运行,会“知道”是否已添加新字段吗?如果没有,如何更改架构? 问题答案: 您可以将其放置
问题内容: 我有一个包含许多字段的模型“ MyModel”,我想使用PATCH方法更新字段“状态”。我正在使用基于类的视图。有什么方法可以实施PATCH? 问题答案: 序列化程序通过指定何时初始化序列化程序来允许部分更新。这是默认情况下在通用视图中处理请求的方式。 这样,您就可以更新序列化程序中的各个字段,或者如果需要的话可以更新所有字段,而无需标准请求的任何限制。
我正在使用Visual Studio Code进行编码,但最近我遇到了奇怪的问题,该如何解决? 当我输入php artisan tinker时,tinker文本不像往常一样,我记得颜色是蓝色的,但现在是白色的。同样在使用php artisan migrate和etc命令后,结果文本是白色的 我卸载了Vscode以及所有appdata和扩展以及与之相关的任何东西,但在安装最新版本后没有任何变化,修补
这是我在Google App Engine上的twitter讨论的后续帖子(twitter对话) 问题是Jersey和GAE不能与DataNuceleus2.0一起工作,因为GAE需要ASM4.0,而Jersey需要3.1。这里有一个详细的描述和简单的解决方案:GAE和Jersey问题描述 问候, 马里奥
我试图使用CXF(3 . 1 . 3版)客户端调用带有补丁方法的API。 尝试按照以下线程中指定的步骤进行操作,但无法解决。只获取URLConnectionHttpConduit而不是AsyncHttpConduit http://cxf . Apache . org/docs/asynchronous-client-http-transport . html 如何在CXF中使用补丁方法 验证CX