`
sg552
  • 浏览: 619355 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
47437293-94b9-3b04-9152-8971c7580049
白手起家学习使用Flex
浏览量:18681
社区版块
存档分类
最新评论

使用 asset pipleline的步骤

阅读更多
最近在改进自己做过的一个项目,在开发测试过程中感觉页面的打开时间比较久,看了下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 插件

    Unity 使用 Play Asset Delivery 插件 com.google.play.assetdelivery-1.7.0.unitypackage unity 打包aab所使用的插件 可是使用它,解决谷哥安装包150m限制

    AssetStudio V0.16.0 源代码 ,使用VS2019.zip

    7. `Third-party libraries`:外部依赖库,AssetStudio可能使用了一些开源库来帮助处理特定任务,如文件I/O、序列化等。 学习和研究AssetStudio的源代码,你可以了解游戏资源解析的原理,C#编程的最佳实践,以及...

    android play Asset Delivery 打包工具和批处理文件

    这一步骤是将Asset Delivery集成到发布流程中的核心部分。通过运行以下命令,你可以生成APKs: ``` bundletool build-apks --bundle=path/to/your/aab --output=path/to/output.apks --mode=universal ``` 2. **...

    Asset Hunter 2 2.4.rar_Asset Hunter_unity_unity 插件

    在实际使用中,Asset Hunter 2 2.4 提供了用户友好的界面,使得资源清理过程变得更加直观和方便。开发者可以通过插件界面查看每个资源的详细信息,包括其类型、大小、引用关系等,以便做出更明智的决策。此外,插件...

    AssetStudio 最新版合集 v0.16.47

    但需要注意的是,未经授权的资源提取可能涉及版权问题,因此在使用AssetStudio时应遵守相关法律法规,尊重原作者的知识产权。 总之,AssetStudio是一款强大且实用的工具,对于游戏开发、学习或研究,它提供了深入...

    AssetStudio.v0.15.23.rar unity 解资源工具

    AssetStudio 是一款强大的Unity...如果你是Unity开发者,或者对Unity游戏的内部运作感兴趣,那么掌握AssetStudio的使用将非常有价值。在使用过程中,记得遵守版权法规,尊重原作者的劳动成果,只用于合法和教育目的。

    AssetStudio_Asststudio_AssetStudiov0.11_AssetStudio_AssetStudio0

    AssetStudio使用它来实现图形渲染和音频播放。 4. PVRTexLib.dll:Imagination Technologies的PowerVR Texture Library,用于处理各种纹理压缩格式,帮助优化在移动设备上的内存使用。 5. fmod.dll:FMOD是一个...

    AssetStudio.net472.v0.16.47

    AssetStudio使用它来处理与图形用户界面和硬件交互的任务。 3. SixLabors.ImageSharp.dll:ImageSharp是一个高性能的图像处理库,用于读取、操作和写入图像。在AssetStudio中,它可能用于处理和显示Unity项目中的...

    Unity加载Asset Bundle

    在Asset BundleProject中,我们可以看到一个完整的Asset Bundle工作流程实例,包括创建、打包、上传和加载Asset Bundle的步骤。这可能包括以下部分: - **Asset Bundle配置**:设置Unity编辑器中的Asset Bundle命名...

    【Asset Studio/Unity Studio】AssetStudio v0.13.x

    Asset Studio 支持导出到多种常见的格式,便于在其他工具中进一步编辑或使用。 4. **依赖关系分析**:它可以帮助用户理解不同资源之间的依赖关系,这对于优化游戏加载时间和减少资源大小至关重要。 5. **反编译脚本*...

    Unity3D插件 Asset-Hunter-PRO-2.2.7

    2. **未使用资产检测**:Asset Hunter PRO 可以找出项目中未被引用或未在任何场景中使用的资源,这些资源可能是由于误删引用或者测试遗留下来的,清理它们可以显著减少构建时的资源负担。 3. **依赖关系查看**:...

    unity3d asset server安装

    通过以上步骤,我们已经成功地搭建了 Unity Asset Server,并将已有项目资源导入到服务器上。其他用户可以通过创建新用户来进行资源的下载和上传。Unity Asset Server 可以实现资源的版本控制、多人协同工作、资源的...

    AssetStudio

    在使用AssetStudio时,你需要将APK文件拖放到程序中,它会自动识别并列出所有可读取的资源。对于"Usv0.9"这样的子文件夹,可能表示特定版本或类型的资源。你可以逐个查看这些子文件,了解它们在游戏中的作用。 总的...

    unity Asset Server 2.0.1

    4. 工作流集成:Asset Server与Unity编辑器紧密集成,用户可以直接在Unity内提交和获取资产,减少了在不同工具间切换的繁琐步骤。 5. 变更历史查看:开发者可以查看资源文件的历史变更记录,了解每次更改的具体内容...

    AssetGraph插件unity资源打包

    6. **版本控制**:AssetGraph可以与其他版本控制系统(如Git)配合使用,确保在团队协作中资源的版本一致性。 7. **自定义脚本**:对于更复杂的需求,AssetGraph允许开发者编写自定义的C#脚本来扩展其功能,实现...

    AssetStudio.net6.v0.16.47.zip

    AssetStudio.net6.v0.16.47.zip 是一个专为IT专业人士设计的软件工具,主要用于查看和分析Unity游戏引擎中的AssetBundle资源。AssetBundles是Unity引擎中用于资源管理的一种机制,它允许开发者将游戏或应用的资源...

    AIRCOM_ASSET_V6 使用说明

    **AIRCOM ASSET V6 使用说明** 网络规划和优化是通信行业中至关重要的环节,而AIRCOM的ASSET工具因其高效和全面的功能深受业界好评。ASSET是一款专为无线网络规划和优化设计的软件,尤其在CDMA2000/EV-DO网络中表现...

    Unity3d AssetBundle反编译工具,AssetStudio.v0.15.47

    使用AssetStudio时,开发者需要注意版权问题,确保在合法授权范围内对AssetBundle进行操作。此外,虽然AssetStudio提供了强大的反编译功能,但它并非无懈可击,Unity也有可能通过加密或其他安全措施来保护其...

    Laravel开发-asset

    在Laravel框架中,"Asset"是用于管理前端资源如CSS、JavaScript、图片等的关键组件。Laravel 4的Asset Manager提供了一种简洁且高效的方式来组织、版本化和发布你的应用资产,使得在开发和部署过程中能更好地处理...

    dotnet-XAsset为Unity项目提供了一套简便的资源管理环境

    使用`XAsset`的基本步骤: 1. **集成XAsset**:将`xasset-master`压缩包解压后,将其内容导入到Unity项目的Assets目录下,确保所有脚本被正确引用。 2. **配置资源目录**:按照`XAsset`的规则组织项目中的资源文件...

Global site tag (gtag.js) - Google Analytics