[英]Rails 3 in Passenger on Site5 no assets are loading
我在Rails 4中编写了一个应用程序,并通过Site5进行了托管,Site5与许多其他人一样仅在Phusion Passenger中使用Rails 3.2和Ruby 1.8.7。
我一直在缓慢地重新编码站点以使其符合这些古老的要求,但在资产管道方面却遇到了障碍。 我的css,javascript或图像都没有显示,因为资产文件夹不在公用文件夹中。
我正在使用HAML,SASS和CoffeeScript,因此需要对我的资产进行编译。 我的应用程序的原始结构如下所示:
- app
|- assets
||- images
||- javascripts
||- stylesheets
...
- public
|- .htaccess
|- assets
尽管我的链接和文本出现了,但是我没有得到任何图像,JavaScript,样式表等。通过与Site5进行的许多无用的技术支持会议(他们对Rails完全一无所知),我意识到我可能必须重组应用程序,因为所有Apache或Passenger都希望在public_html文件夹中拥有资产。 因此,我尝试将资产自动链接到公用文件夹无济于事。 然后我像这样复制它们:
- app
|- assets
||- images
||- javascripts
||- stylesheets
...
- public
|- .htaccess
|- assets
|- images
|- javascripts
|- stylesheets
现在,我的图像出现了,但是没有任何样式,javascript,什么也没有。 我试过跑步
RAILS_ENV=production bundle exec rake assets:precompile
我看过许多有关乘客和铁路的文章,但似乎没有给出有关资产的答案。 我也阅读了很多有关Rails资产管道的信息,但是就乘客而言,这似乎并没有提供任何见识。
我真的很困惑,也感到非常沮丧,因为似乎Dreamhost和Site5都在旧版本的Rails上运行,因此更多的人会在对该站点进行编码之前意识到它们的版本太新了。
任何帮助将是有用的。
这个问题是有点老了,但最近我遇到了同样的问题。 这里的区别是我在Bluehost上而不是Site5上。 在这里,我将介绍使它起作用的选项,这些都是我在我的测试中最终解决的问题。
在寻找此问题时,在建议中看到的第一件事是,在/config/environments/production.rb
应该是
config.serve_static_assets = false
这是默认选项。 在此之前,我将其设置为true
,这是它可以工作的唯一方法,但是Rails会编译资产,并且会严重影响性能。
然后,为了使情况正确,我将其保留为默认值,即false
,但未加载任何图像,样式表或javascript。 这是一个老式的基于文本的页面,不好。
这些资源在我的public / assets文件夹中是正确的,并且在页面上看到链接是正确的,即生成的HTML正在寻找正确的编译文件。 检查您的public/assets/manifest.yml
,并将其与您的渲染纯文本页面上的链接进行比较。 使用Firebug,我看到了一件有趣的事情:
而不是我的application.css
,正在加载的是404页面! 这给了我暗示Apache无法访问我的public / assets文件夹。
为了解决我所做的就是将我的public_html/myapp
文件夹链接到我的Rails应用程序资产文件夹,例如:
ln -s /home2/my_dir_at_bluehost/rails/app_at_bluehost/public/assets /home2/my_dir_at_bluehost/public_html/app_at_bluehost/assets
终于奏效了。 波纹管是与Bluehost上的.htaccess一起使用的.htaccess:
<IfModule mod_passenger.c>
Options -MultiViews
PassengerResolveSymlinksInDocumentRoot on
RailsEnv production
RackBaseURI /
PassengerAppRoot /home2/my_dir_at_bluehost/rails/app_at_bluehost
SetEnv GEM_HOME /home2/my_dir_at_bluehost/ruby/gems
</IfModule>
总结一下:
他们甚至告诉我,如果我希望我可以使用VPS,那就是在共享主机上无法进行全局配置,就连在Bluehost上与Bluehost上的支持联系都不能令人满意。 但这最终只是一个简单的软链接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.