【问题标题】:How to access assets during development if precompiling for development如果为开发预编译,如何在开发期间访问资产
【发布时间】:2012-07-28 12:27:02
【问题描述】:

我最近将一个项目的第一次迭代部署到 Heroku。因为我进行了预编译,所以我在开发过程中使用的所有资产现在都在 public/assets 和 public/system 文件夹中。

我是aware 在开发期间访问我的资产的两种选择。默认选项似乎是允许 public/assets 文件覆盖我的 app/assets 文件。但是,如果我这样做,我在 app/assets 中所做的任何 CSS 更改都不会反映。

另一种选择是仅通过以下方式访问 app/assets 文件夹:

config.serve_static_assets = false

但是,通过这样做,我在开发过程中看不到任何图像,因为它们已经被预编译并移动到 public/system

有没有办法从应用程序/资产访问我的 CSS/JS 文件,但仍然从公共/系统加载我的图像?

或者我应该在 public/assets 文件夹之外进行所有 CSS/JS 开发吗?任何反馈将不胜感激。

【问题讨论】:

    标签: ruby-on-rails configuration asset-pipeline


    【解决方案1】:

    部署后我喜欢运行

    rake assets:clean
    

    摆脱public/assets 中的已编译/压缩资产。这让 Rails 在开发模式下回顾我的 app/assets 目录,因为我的资产都不再在 public/assets 中了。

    此外,除非您的情况特殊,否则您应该将图像放入app/assets/images,而不是public/systemrake assets:precompile 也将图像推送到 public/assets。执行此操作时,您需要在 ___.css.scss 文件中使用 image_path(...) 以允许使用在预编译期间为图像资产生成的散列文件名正确更新路径。

    最后,通读 this Rails Guide 似乎对你有很多好处。

    【讨论】:

    • 嗨@Deefour,感谢您的反馈。这听起来很对。让我看看我是否可以修复我的图像路径,我会试一试。您的模型的 has_attached_file 行中是否指定了路径/url?
    • has_attached_file?我不知道你指的是什么,抱歉。
    • 嗨@Deefour,再次感谢您的帮助。 rake assets:clean 毕竟工作得很好。问题是,我使用的是回形针,我上传的图像在开发过程中被保存到公共/系统。但是,这很好,因为它不必为生产进行预编译,也不会被 rake assets:clean 删除。
    猜你喜欢
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 2011-12-22
    • 1970-01-01
    • 2012-01-23
    • 2013-01-24
    • 2019-11-20
    相关资源
    最近更新 更多