【发布时间】:2013-11-22 06:17:16
【问题描述】:
我正在使用AssetPack 来处理我的 Sinatra 应用程序上的公共资产。因为该应用程序在网站上作为可嵌入广告工作,所以我需要声明 css assets route absolute。这是我当前的代码:
require 'rubygems'
require 'sinatra'
require 'rack'
require 'sinatra/assetpack'
class Ads < Sinatra::Application
assets {
css :mybanner, "http://#{request.host_with_port}/css/styling.css", [
"http://#{request.host_with_port}/css/styling.css"
]
}
问题是在调用request.host_with_port 时出现以下错误
NameError: undefined local variable or method `request' for # <Sinatra::AssetPack::Options:0x007fc1f88b0a80>
我不确定为什么 request 不起作用。有什么想法吗?
【问题讨论】:
-
它不起作用,因为您是从 Sinatra 应用范围之外调用它。如果您注意,您会看到它是从
Sinatra::AssetPack::Options实例调用的。
标签: ruby sinatra sinatra-assetpack