【问题标题】:Non global coffee script and asset pipeline非全球咖啡脚本和资产管道
【发布时间】:2013-04-24 06:32:47
【问题描述】:

我有一个咖啡脚本user.js.coffee,它只在某些视图中使用。我通过使用以下答案实现了这一点:

https://stackoverflow.com/a/6795533/784318

现在我已经从application.js 中排除了脚本。我还删除了//= require_tree . 条目。

所以我的文件在这里可用:http://localhost:3000/assets/user.js 但是,当我将其部署到服务器时,资产将合并为一个 application.js,所以我如何确保 user.js 可以像这样在生产环境中使用:http://myserver.com/assets/user.js?

【问题讨论】:

    标签: javascript ruby-on-rails ruby coffeescript asset-pipeline


    【解决方案1】:

    environments/production.rb(或您需要进行预编译的环境)中取消注释或将此文件添加到预编译数组中:

    # environments/production.rb
    
    config.assets.precompile += %w( user.js )
    

    其他条目可能已经存在,只需添加您需要单独访问的任何其他文件。

    此文件不会被编译成一个大的application.js 文件,并且可以作为user.js 单独访问

    【讨论】:

    • 这看起来很有希望。我将在生产中进行测试。你知道我是否必须使用user.js.coffee 吗?
    • user.js 应该可以正常工作。至少它适用于我的情况。它应该自己拾取.coffee
    • @Oktav 但编译后的文件将具有像user-e55bd5e3eb82fa4e8034af2883dc37e8.js 这样的指纹名称,因此我们无法确定它的路径。
    • @freemanoid 您需要通过javascript_include_tag "user" 在您的视图中包含该文件,并且它应该包含具有正确指纹的文件。另外,只有js文件的内容发生变化,指纹才会变化。
    • @Oktav 但如果我需要在第 3 方资源上发布此文件的链接怎么办?我需要知道这样做的链接。
    【解决方案2】:

    您可以尝试将您的 user.js 文件直接放到应用程序的公共文件夹中,并配置您的资产管道以将其从“压缩”过程中排除。

    【讨论】:

    猜你喜欢
    • 2016-02-09
    • 1970-01-01
    • 2013-08-26
    • 2013-01-09
    • 1970-01-01
    • 2013-09-07
    • 2013-01-21
    • 2012-06-07
    • 2013-04-28
    相关资源
    最近更新 更多