首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Padrino +sinatra-资产包不起作用

Padrino +sinatra-资产包不起作用
EN

Stack Overflow用户
提问于 2012-04-13 12:26:47
回答 1查看 1.1K关注 0票数 1

我正试图把帕德里诺和西纳特拉-资产包装结合起来,但没有成功。

这是我的个人档案:

代码语言:javascript
复制
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文件中设置:

代码语言:javascript
复制
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响应。

有什么想法吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2012-04-23 19:26:56

在我的应用程序中发现了这个问题,但是从您的app.rb代码的外观来看,这对您来说可能是一样的;

Assetpack提供来自您在serve调用中指定的目录的文件,相对于应用程序的根。在padrino中,应用程序根目录是yourapplication/app,因此,如果您告诉assetpack从/app/assets/stylesheets为css提供服务,那么它实际上是在yourapplication/app/app/assets/stylesheets中查找文件。

问题的第二部分是,在AssetPack文档中,它显示了代码

代码语言:javascript
复制
set :root, File.dirname(__FILE__)

register Sinatra::AssetPack行之前,我假设它正确地设置了应用程序的根目录,以便AssetPack将查看根应用程序目录而不是app。但是,即使我修改了对set的调用,以从app.rb文件(因为它位于Padrino中的app dir中)上一个目录,它似乎对AssetPack没有任何影响。

简而言之,修改“relative”调用中的from:路径相对于您的应用程序目录应该可以解决这个问题。就你而言,它们应该是:

代码语言:javascript
复制
serve '/js',  from: '/assets/javascripts'
serve '/css', from: '/assets/stylesheets'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10140792

复制
相关文章

相似问题

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