0

我用 rails 3.1.rc.1 创建了一个简单的引擎,一切都很好。

当我更改引擎 app/assets 和 app/views/layout 应用程序布局文件中的任何内容时,它不会被加载。

但是当我在 test/dummy/app/views 或 assets 文件中的虚拟应用程序中进行更改时,它会得到反映。

不知道如何告诉引擎使用自己的资产/布局而不是虚拟应用程序?

4

3 回答 3

1

你试过这个布局吗?

module MyEngine
  class ApplicationController < ActionController::Base
    layout "application" # or the name of the layout to use in the application
  end
end
于 2011-12-05T13:37:16.917 回答
0

仔细检查您的代码

  1. 如果您的资产管道已启用?配置/应用程序.rb

    config.assets.enabled = true

  2. 在 rails3.1 中,app/view/layout 添加样式表和 javascript 应该是这样的:

    <%= stylesheet_link_tag "mystylesheetname" %>

    <%= javascript_include_tag "myjavascriptname" %>

  3. 您可以在 config/application.rb 中向管道添加额外的(完全限定的)路径。

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

  4. 如果您在视图的资产/图像中访问图像,您应该这样做:

    <%= image_tag "rails.png" %>

  5. 再次清空文件夹 tmp\cache, rails s

于 2011-10-11T03:54:48.227 回答
0

@ivanLee,@Pixoo

当 Rails 在 3.1.rc.1 中时,我会提出这个问题

后来随着稳定的 Rails 3.1.x 发布,我在同一个引擎中重新生成了插件并覆盖了更改的代码。默认情况下它可以毫无问题地工作。

但是@ivanLee,

您的提示可能会解决我遇到的问题,即我无法通过 sprocket 使用其他文件中设置的 SASS 变量。

如果我完全使用 SASS 路径,使用@import somesass_or_sass_partial,它可以在开发中工作,但是当我这样做时RAILS_ENV=development bundle exec rake assets:compile,构建失败并出现奇怪的错误。

于 2011-12-05T18:17:35.213 回答