Sinatra资产管道-can';不要使用链接到预编译的css

Sinatra资产管道-can';不要使用链接到预编译的css,css,ruby,sass,sinatra,asset-pipeline,Css,Ruby,Sass,Sinatra,Asset Pipeline,此处引用 嗨 我不能让它在生产中工作,但它在开发中工作正常 当我在生产环境中部署时,它会进行预编译,但不会加载CSS。 JS加载正常,但没有CSS。 因此,我有一个带有一些JS的html页面,但没有图像,没有CSS 这就是我的资产的组织方式: 在本地开发环境中,资产在public/assets/(使用rake资产:precompile)中预编译 在Prod env中,capistrano任务的配置方式如下: after 'deploy:finishing', :finalize_upda

此处引用

我不能让它在生产中工作,但它在开发中工作正常

当我在生产环境中部署时,它会进行预编译,但不会加载CSS。 JS加载正常,但没有CSS。 因此,我有一个带有一些JS的html页面,但没有图像,没有CSS

这就是我的资产的组织方式:

在本地开发环境中,资产在public/assets/(使用
rake资产:precompile
)中预编译

在Prod env中,capistrano任务的配置方式如下:

  after 'deploy:finishing', :finalize_update do
    on roles(:web), in: :sequence do
      execute(:chmod, '-R g+w', release_path) if fetch(:group_writable, true)

      within release_path do
        execute :rake, "assets:precompile RACK_ENV=production"
        execute :rake, "assets:clean RACK_ENV=production"
      end
    end
  end
Sinatra应用程序(比如myapp.rb)

application.scss

@import "bootstrap/variables";
@import "bootstrap/mixins";
...
...
@import "layout";
布局:

%link{ href: '/assets/application.css', rel: 'stylesheet' }

...

%script{ src:'//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'}
%script{ src: '//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js' }
%script{ src: '/assets/app.js' }
耙子:

require 'sinatra/asset_pipeline/task'
require './lib/myapp'
Sinatra::AssetPipeline::Task.define! Novagile

我是错过了一些简单而明显的东西,还是一个恶毒的配置技巧?:'(

很难说到底出了什么问题。显然,您的布局或视图缺少源代码。
请看一看。我只能猜测,您必须自己处理环境(
生产
开发
)。我上面的例子是,您可能会感兴趣。

好的,我不确定这是什么把戏:

我从gem文件中删除了
gem'sass'(compass仍然存在)

我使用了链轮帮助器和从不
ActionView::helpers
(比如样式表\链接\标记或样式表\标记)

我对指南针(生成的精灵)和链轮(之前或之后重命名thoses文件)有一个小问题,但现在一切正常


compass使用
生成的图像\u dir
compass配置选项解决,该选项的值为放置生成精灵的目录。

尝试过,但没有改变:(当我认为它应该被编译后的散列/标记引用时,助手总是生成一个。我尝试过简单的直接访问,这里它是=stylesheet_tag'/assets/application.css',其他助手也没有帮助。在专用服务器和heroku上尝试过,同样的结果,没有css。在开发中仍然有效。God注释很难看。你呢你100%确定你的应用程序处于生产模式吗?很抱歉,我这么问,但是根据你的评论,这种行为非常奇怪。添加一些调试输出,环境变量在暂存和生产中都正常。在一些测试之后,自定义JS没有加载,是CDN one(正常)让我认为JS加载了。编译s直到确定,但仍然没有CSS。当我硬访问编译的CSS时,它就在这里。只是帮助者没有得到它!:(
%link{ href: '/assets/application.css', rel: 'stylesheet' }

...

%script{ src:'//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'}
%script{ src: '//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js' }
%script{ src: '/assets/app.js' }
require 'sinatra/asset_pipeline/task'
require './lib/myapp'
Sinatra::AssetPipeline::Task.define! Novagile