我的haml视图在部署时无法在我的public / css文件夹中找到css文件,但设法在localhost上找到它

时间:2012-07-12 13:45:12

标签: css ruby sinatra haml passenger

我的应用程序在Sinatra上运行,并使用Passenger部署在我的Apache Web服务器上。我的目录结构如下:

approot
` public
  ` css
    - bootstrap.css
  ` uploads
    - empty.txt
` tmp
  - restart.txt
` views
  - success.haml
  - upload.haml
- config.ru
- myapp.rb

内置upload.haml

%link(rel="stylesheet" href="css/bootstrap.css")

当我在localhost:4567上运行此应用程序时,CSS加载就好了。但是,当我在我的Web服务器上部署它时,CSS不会加载。

在我的网络服务器上,使用以下代码访问应用程序:rubyapps.mydomain.com/appname

如果我输入:rubyapps.mydomain.com/appname/css/bootstrap.css,我可以很好地看到CSS文件的内容。

完全困惑,并没有得到Sinatra如何处理这种情况,寻求一些帮助。

2 个答案:

答案 0 :(得分:1)

您可能需要使用Sinatra的URL helper

For generating URLs you should use the url helper method, for instance, in Haml:

%a{:href => url('/foo')} foo

It takes reverse proxies and Rack routers into account, if present.

This method is also aliased to to (see below for an example).

答案 1 :(得分:0)

也许这个?

%link(rel="stylesheet" href="../public/css/bootstrap.css")

或者...

%link(rel="stylesheet" href="/css/bootstrap.css")