首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要资产路径的子目录中的资产文件

需要资产路径的子目录中的资产文件
EN

Stack Overflow用户
提问于 2011-08-22 10:00:28
回答 2查看 5.4K关注 0票数 5

我正在尝试将我的应用程序升级到Rails3.1,并且我有相当多的自定义Javascript文件,我正在尝试将其迁移到新的资产管道。

我当前(即3.1之前的版本)的目录结构类似于:

代码语言:javascript
运行
复制
public/
    foo/
        model.js
        controller.js
        etc...

因此,我尝试将它们移动到lib/assets/javascripts,并保持foo/子目录的完整性(而不是创建foo_model.js、foo_controller.js等)。

在我的application.js中,我试图这样做:

代码语言:javascript
运行
复制
//= require foo/model

代码语言:javascript
运行
复制
//= require 'foo/model'

但是这些都不起作用。Rails总是给我一个错误页面,并说:

代码语言:javascript
运行
复制
couldn't find file 'foo/model.js'

我确实测试了如果它们不在子目录中就可以正确地包含它们,所以我知道这不仅仅是因为我的lib/assets目录不在include路径或其他什么地方。所以我猜我只是在想是否有办法做到这一点,或者我应该只是扁平化目录并使用foo_model.js之类的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-22 12:40:21

看起来rails只向资源路径添加了一个级别的子目录

您可以通过在rails控制台上运行Rails.application.config.assets.paths来检查当前路径

在application.rb添加文件夹的绝对路径,如下所示

代码语言:javascript
运行
复制
config.assets.paths += ["/path/to/lib/assets/javascript/foo"]
票数 6
EN

Stack Overflow用户

发布于 2011-10-10 10:16:26

不确定为什么rails只添加一级子目录,但您肯定可以在config/application.rb中向管道添加额外的(完全限定的)路径。这些文档指向答案:http://guides.rubyonrails.org/asset_pipeline.html#asset-organization

例如:

config.assets.paths << "#{Rails.root}/app/assets/flash"

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7142481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档