最近在改进自己做过的一个项目,在开发测试过程中感觉页面的打开时间比较久,看了下FIREBUG, 发现每次打开页面的时间,加载 js/css 居然用了5秒多。 所以下定决定,把rails3的 asset pipeline用上。
步骤记录在这里,供自己或其他人参考:
1. 使用3.2.0 版本的Rails. (只要支持 asset pipeline就好。)
$ vim Gemfile
9 #gem 'rails', '3.0.5'
10 gem 'rails', '3.2.0'
然后 $ rm Gemfile.lock
然后 $ bundle
2. 其他的 gem, 该调整的就调整。。。 >_< mysql2啥的。
gem 'mysql2', "0.3.11" # 使用大于0.3的版本。。。rails3.2
#gem "rake", "0.8.7" #去掉这个
gem 'jquery-rails' # 这个用来引用 jquery, jquery-ujs 这两个JS包
3. 保证原来的测试都通过。。。
$ bundle exec rake db:create RAILS_ENV=test
$ bundle exec rake db:schema:load RAILS_ENV=test
$ bundle exec rspec spec
4. 建立asset 所需要的文件夹:
$ mkdir app/assets
$ cp public/images app/assets/ -r
$ cp public/javascripts app/assets/ -r
$ cp public/stylesheets app/assets/ -r
5. 修改 layout 文件: vim app/views/layouts/application.html.erb
保证有这两行。
6 <%= stylesheet_link_tag "application", :media => "all" %>
7 <%= javascript_include_tag "application" %>
6. 编辑 app/assets/javascripts/application.js: 把内容用asset 可以理解的格式重新写一下。。。(原来的内容留着。。。)
2 //= require jquery
3 //= require jquery_ujs
4 //= require jquery-ui-1.8.18.custom.min.js
5 //= require photoshow
6 //= require tab_mod
7 //= require jquery.rsv
8 //= require validation_rules
9 //= require my_utilities
7. 编辑 app/assets/stylesheets/application.css
同上步,把原来的CSS 文件按照顺序组织好。 (顺序跟原来的一样,例如:)
1 /*
2 *= require_self
3 *= require jquery-ui-smoothness
4 *= require validation_message
5 *= require tablecloth
6 *= require ui.multiselect
7 *= require jquery.taghandler
8 *= require data_table_jui
9 *= require jquery.jgrowl
10 *= require customized
11 */
8. 重命名:把这两个文件都已 .erb 结尾。
9. 编辑: 这两个文件,把所有 src= , ulr() 的地方(也就是对图片的引用),都用 asset_path 来替换。
例如:
background:url(/images/header.gif) 0 0 repeat-x;
替换成:
background:url( <%= asset_path "header.gif" %>) 0 0 repeat-x;
10. 把其他相关的CSS, JS文件也修改了。。。
11. 修改config 目录:
11.1 config/application.rb ,增加下面几行
# Enable the asset pipeline
config.assets.enabled = true
# Version of your assets, change this if you want to expire all your assets
config.assets.version = '1.0'
11.2 config/environments/development.rb ,去掉下面这行:
# config.action_view.debug_rjs = true
11.3 config/environments/production.rb ,增加下面几行:
# Compress JavaScripts and CSS
config.assets.compress = false
# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false
# Generate digests for assets URLs
config.assets.digest = true
重启之后,人肉看一下测试结果。。。 一次搞对算是运气好,样式啥的不对也别怕。
12. 如何DEBUG:
1. 打开 FIREBUG ( or developer tools in chrome, safari...) 看看有没有出现JS错误。 有的话就调整。。。
2. 样式不对的话(例如少些个引号,引起的CSS不能被浏览器识别),就先校验一下CSS是否合理, 见:http://jigsaw.w3.org/css-validator/#validate_by_input 。 一般会给出很多个提示,找出其中 “Parse Error ”的地方, 然后再调整。
分享到:
相关推荐
Unity 使用 Play Asset Delivery 插件 com.google.play.assetdelivery-1.7.0.unitypackage unity 打包aab所使用的插件 可是使用它,解决谷哥安装包150m限制
7. `Third-party libraries`:外部依赖库,AssetStudio可能使用了一些开源库来帮助处理特定任务,如文件I/O、序列化等。 学习和研究AssetStudio的源代码,你可以了解游戏资源解析的原理,C#编程的最佳实践,以及...
这一步骤是将Asset Delivery集成到发布流程中的核心部分。通过运行以下命令,你可以生成APKs: ``` bundletool build-apks --bundle=path/to/your/aab --output=path/to/output.apks --mode=universal ``` 2. **...
在实际使用中,Asset Hunter 2 2.4 提供了用户友好的界面,使得资源清理过程变得更加直观和方便。开发者可以通过插件界面查看每个资源的详细信息,包括其类型、大小、引用关系等,以便做出更明智的决策。此外,插件...
6. **版本控制**:AssetGraph可以与其他版本控制系统(如Git)配合使用,确保在团队协作中资源的版本一致性。 7. **自定义脚本**:对于更复杂的需求,AssetGraph允许开发者编写自定义的C#脚本来扩展其功能,实现...
但需要注意的是,未经授权的资源提取可能涉及版权问题,因此在使用AssetStudio时应遵守相关法律法规,尊重原作者的知识产权。 总之,AssetStudio是一款强大且实用的工具,对于游戏开发、学习或研究,它提供了深入...
AssetStudio 是一款强大的Unity...如果你是Unity开发者,或者对Unity游戏的内部运作感兴趣,那么掌握AssetStudio的使用将非常有价值。在使用过程中,记得遵守版权法规,尊重原作者的劳动成果,只用于合法和教育目的。
AssetStudio使用它来实现图形渲染和音频播放。 4. PVRTexLib.dll:Imagination Technologies的PowerVR Texture Library,用于处理各种纹理压缩格式,帮助优化在移动设备上的内存使用。 5. fmod.dll:FMOD是一个...
AssetStudio使用它来处理与图形用户界面和硬件交互的任务。 3. SixLabors.ImageSharp.dll:ImageSharp是一个高性能的图像处理库,用于读取、操作和写入图像。在AssetStudio中,它可能用于处理和显示Unity项目中的...
在Asset BundleProject中,我们可以看到一个完整的Asset Bundle工作流程实例,包括创建、打包、上传和加载Asset Bundle的步骤。这可能包括以下部分: - **Asset Bundle配置**:设置Unity编辑器中的Asset Bundle命名...
**AIRCOM ASSET V6 使用说明** 网络规划和优化是通信行业中至关重要的环节,而AIRCOM的ASSET工具因其高效和全面的功能深受业界好评。ASSET是一款专为无线网络规划和优化设计的软件,尤其在CDMA2000/EV-DO网络中表现...
2. **未使用资产检测**:Asset Hunter PRO 可以找出项目中未被引用或未在任何场景中使用的资源,这些资源可能是由于误删引用或者测试遗留下来的,清理它们可以显著减少构建时的资源负担。 3. **依赖关系查看**:...
Asset Studio 支持导出到多种常见的格式,便于在其他工具中进一步编辑或使用。 4. **依赖关系分析**:它可以帮助用户理解不同资源之间的依赖关系,这对于优化游戏加载时间和减少资源大小至关重要。 5. **反编译脚本*...
通过以上步骤,我们已经成功地搭建了 Unity Asset Server,并将已有项目资源导入到服务器上。其他用户可以通过创建新用户来进行资源的下载和上传。Unity Asset Server 可以实现资源的版本控制、多人协同工作、资源的...
4. 工作流集成:Asset Server与Unity编辑器紧密集成,用户可以直接在Unity内提交和获取资产,减少了在不同工具间切换的繁琐步骤。 5. 变更历史查看:开发者可以查看资源文件的历史变更记录,了解每次更改的具体内容...
在使用AssetStudio时,你需要将APK文件拖放到程序中,它会自动识别并列出所有可读取的资源。对于"Usv0.9"这样的子文件夹,可能表示特定版本或类型的资源。你可以逐个查看这些子文件,了解它们在游戏中的作用。 总的...
4. **SixLabors.Fonts.dll**:这是ImageSharp库的一个扩展,用于字体管理和文本渲染,可能在AssetStudio中用于显示文本资源或者读取游戏中使用的字体信息。 5. **Newtonsoft.Json.dll**:这是一个流行的JSON序列化...
AssetStudio.net6.v0.16.47.zip 是一个专为IT专业人士设计的软件工具,主要用于查看和分析Unity游戏引擎中的AssetBundle资源。AssetBundles是Unity引擎中用于资源管理的一种机制,它允许开发者将游戏或应用的资源...
使用AssetStudio时,开发者需要注意版权问题,确保在合法授权范围内对AssetBundle进行操作。此外,虽然AssetStudio提供了强大的反编译功能,但它并非无懈可击,Unity也有可能通过加密或其他安全措施来保护其...
在Laravel框架中,"Asset"是用于管理前端资源如CSS、JavaScript、图片等的关键组件。Laravel 4的Asset Manager提供了一种简洁且高效的方式来组织、版本化和发布你的应用资产,使得在开发和部署过程中能更好地处理...