我正试图把帕德里诺和西纳特拉-资产包装结合起来,但没有成功。
这是我的个人档案:
source :rubygems
gem 'rake'
gem 'sinatra-flash', :require => 'sinatra/flash'
# Component requirements
gem 'haml'
# Assets requirements
gem 'sinatra-assetpack', :require => 'sinatra/assetpack'
# Test requirements
# Padrino Stable Gem
gem 'padrino', '0.10.6'在我的app/app.rb文件中设置:
require 'sinatra/assetpack'
class Coffee < Padrino::Application
register Padrino::Rendering
register Padrino::Mailer
register Padrino::Helpers
register Sinatra::AssetPack
assets {
serve '/js', from: '/app/assets/javascripts'
serve '/css', from: '/app/assets/stylesheets'
css :main, ['/css/main.css']
js :application, ['/js/application.js']
}
enable :sessions
end我的javascript文件位于/app/assets/javascript中,css文件在/app/assets/样式表中,但是Padrino为/css/main.css和/js/application.js提供404响应。
有什么想法吗?
谢谢
发布于 2012-04-23 19:26:56
在我的应用程序中发现了这个问题,但是从您的app.rb代码的外观来看,这对您来说可能是一样的;
Assetpack提供来自您在serve调用中指定的目录的文件,相对于应用程序的根。在padrino中,应用程序根目录是yourapplication/app,因此,如果您告诉assetpack从/app/assets/stylesheets为css提供服务,那么它实际上是在yourapplication/app/app/assets/stylesheets中查找文件。
问题的第二部分是,在AssetPack文档中,它显示了代码
set :root, File.dirname(__FILE__)在register Sinatra::AssetPack行之前,我假设它正确地设置了应用程序的根目录,以便AssetPack将查看根应用程序目录而不是app。但是,即使我修改了对set的调用,以从app.rb文件(因为它位于Padrino中的app dir中)上一个目录,它似乎对AssetPack没有任何影响。
简而言之,修改“relative”调用中的from:路径相对于您的应用程序目录应该可以解决这个问题。就你而言,它们应该是:
serve '/js', from: '/assets/javascripts'
serve '/css', from: '/assets/stylesheets'https://stackoverflow.com/questions/10140792
复制相似问题