Ruby on rails 使用具有多个资产目录的链轮/资产管道
我目前正在设计一个应用程序,用户可以在其中选择一个主题并发布他们的页面 为了实现这一点,我以以下方式组织了我的Ruby on Rails项目:Ruby on rails 使用具有多个资产目录的链轮/资产管道,ruby-on-rails,asset-pipeline,sprockets,Ruby On Rails,Asset Pipeline,Sprockets,我目前正在设计一个应用程序,用户可以在其中选择一个主题并发布他们的页面 为了实现这一点,我以以下方式组织了我的Ruby on Rails项目: > app > controllers > helpers > mailers > models > views > assets > stylesheets - style.scss > images - image.jpg &
> app
> controllers
> helpers
> mailers
> models
> views
> assets
> stylesheets
- style.scss
> images
- image.jpg
> javascripts
> themes
> theme_1
- layout.html.erb
> assets
> stylesheets
- style.scss
> images
- image.jpg
> javascripts
> theme_2
> ....
在/app/themes/theme\u 1/layout.html.erb中使用内置帮助程序(如stylesheet\u link\u tag
和image\u tag
)时,我希望这些帮助程序使用位于自己目录中的资源
例如,在/app/themes/theme_1/layout.html.erb中使用以下代码时:
<%= image_tag('image.jpg') %>
我想显示位于/app/themes/theme_1/assets/images/image.jpg的图像,而不是位于/app/views/assets/images/image.jpg的图像。使用stylesheet\u link\u标记
和style.scss也是如此
因此,基本上,我想知道是否有一种方法可以定义一个目录,其中内置的帮助程序(如stylesheet\u link\u tag
和image\u tag
)将在其中查找,因为此时,当链接到与位于不同文件夹中的其他资产共享其文件名的资产时,我会遇到冲突
非常感谢您的帮助,我也非常欢迎您提出其他建议
我想显示位于/app/themes/theme_1/assets/images/image.jpg的图像,而不是位于/app/views/assets/images/image.jpg的图像
我相信更传统的方法是在app/assets/images
中创建名为themes/theme_1
的文件夹,然后将主题图像放在其中
现在你可以像这样使用你的image\u标签了
= image_tag('/themes/theme_1/image.jpg')
谢谢你的回答。现在,虽然这确实解决了我的问题,但我仍然想知道是否有一种解决方案,可以将主题资产保存在它们自己的目录中,而不是为每个主题在
app/assets/
中的所有子目录中创建新目录。我必须承认,您的示例可能是更传统的方式,我知道坚持约定是使用Ruby on Rails做事情的首选方式,但在我的情况下,如果我能够将主题的资产与应用程序的其余部分分离,我可以想到在灵活性方面的许多优势。