2016-09-19 62 views
0

我正在使用rails 4.2和开发我的导轨应用程序与Windows 7 64位, 一切工作正常的开发模式,但一旦我试图在生产模式上运行我的应用程序,我的应用程序布局,CSS和JavaScript全部坏掉, 我相信它与资产管道有关,但我不太明白,请给我一些帮助。Rails的资产,CSS,JavaScript都在生产模式中打破?

这里是

vendor/assets 
- public_assets 
    - font 
    - img 
    - bg 
    - favicon 
    - images 
     - proteam 
    - png 
     - ualanding 
    - portofolio 
     - thumbnail 
     - fullsize 
    - css 
    - js 
    - sass 
    - vendor 
     - bootstrap 
     - css 
     - fonts 
     - js 
     - font-awesome 
     - css 
     - fonts 
     - less 
     - scss 
     - jquery 
     - magnific-popup 
     - ninja-slider 
     - scroolreveal 
    - vid 
- Static_Dev 
    - assets 
     - img 
     - flags 
     - avatars 
    - css 
    - js 
      - libs 
      - views 
    - fonts 

下我的资产结构,我打电话给我的资产在这些文件中:

admin.css 
admin.js 
public.css 
public.js 

我也添加到了我的assets.rb:

Rails.application.config.assets.precompile += %w(public.css) 
Rails.application.config.assets.precompile += %w(admin.css) 
Rails.application.config.assets.precompile += %w(admin.js) 
Rails.application.config.assets.precompile += %w(public.js) 

这对于application.rb

config.assets.paths += Dir["#{Rails.root}/vendor/public-assets/*"].sort_by { |dir| -dir.size } 
config.assets.paths += Dir["#{Rails.root}/vendor/Static_Dev/*"].sort_by { |dir| -dir.size } 

这里是我的浏览器错误日志:

http://localhost:3000/stylesheets/public.css Failed to load resource: the server responded with a status of 404 (Not Found) 
http://localhost:3000/javascripts/public.js Failed to load resource: the server responded with a status of 404 (Not Found) 
http://localhost:3000/assets/img/logo.png Failed to load resource: the server responded with a status of 404 (Not Found) 
http://localhost:3000/assets/img/png/UA-Landing/Img-UALanding1.png Failed to load resource: the server responded with a status of 404 (Not Found) 
http://localhost:3000/assets/img/png/UA-Landing/Img-UALanding2.png Failed to load resource: the server responded with a status of 404 (Not Found) 
http://localhost:3000/assets/img/png/UA-Landing/Img-UALanding3.png Failed to load resource: the server responded with a status of 404 (Not Found) 
http://localhost:3000/assets/vid/URBAN%20video.mp4 Failed to load resource: the server responded with a status of 404 (Not Found) 
(index):372 Uncaught ReferenceError: $ is not defined(anonymous function) @ (index):372 
base.js:6943 GET http://localhost:3000/uploads/house/thumbnail/8/Pensive_Parakeet.jpg 404 (Not Found)h.Ja @ base.js:6943g5 @ base.js:4017mma @ base.js:4007b9 @ base.js:4335psa @ base.js:4349W8 @ base.js:4330W8.create @ base.js:7301(anonymous function) @ www-embed-player.js:507g.De @ www-embed-player.js:507oi @ www-embed-player.js:505g.Zb @ www-embed-player.js:498(anonymous function) @ www-embed-player.js:540 
base.js:6943 GET http://localhost:3000/uploads/house/thumbnail/1/Penguins.jpg 404 (Not Found)h.Ja @ base.js:6943g5 @ base.js:4017mma @ base.js:4007b9 @ base.js:4335psa @ base.js:4349W8 @ base.js:4330W8.create @ base.js:7301(anonymous function) @ www-embed-player.js:507g.De @ www-embed-player.js:507oi @ www-embed-player.js:505g.Zb @ www-embed-player.js:498(anonymous function) @ www-embed-player.js:540 
base.js:6943 GET http://localhost:3000/uploads/apt/thumbnail/144/Pensive_Parakeet.jpg 404 (Not Found)h.Ja @ base.js:6943g5 @ base.js:4017mma @ base.js:4007b9 @ base.js:4335psa @ base.js:4349W8 @ base.js:4330W8.create @ base.js:7301(anonymous function) @ www-embed-player.js:507g.De @ www-embed-player.js:507oi @ www-embed-player.js:505g.Zb @ www-embed-player.js:498(anonymous function) @ www-embed-player.js:540 

我运行此命令:

rake assets:precompile RAILS_ENV=production

和结果的错误是这样的:

C:\Users\lenovo\Documents\urbanace\urbanacecode>rake assets:precompile RAILS_ENV 
=production 
I, [2016-09-19T16:18:29.470690 #13608] INFO -- : Writing C:/Users/lenovo/Docume 
nts/urbanace/urbanacecode/public/assets/public-78c00ecc416b598bae03765242c333f88 
e2db37a2d83217a99d53e02d1e5d9de.css 
I, [2016-09-19T16:18:29.525693 #13608] INFO -- : Writing C:/Users/lenovo/Docume 
nts/urbanace/urbanacecode/public/assets/public-78c00ecc416b598bae03765242c333f88 
e2db37a2d83217a99d53e02d1e5d9de.css.gz 
I, [2016-09-19T16:18:38.402201 #13608] INFO -- : Writing C:/Users/lenovo/Docume 
nts/urbanace/urbanacecode/public/assets/admin-529cbf47908b1b0636fcd9023a0f6acf3c 
1bd78078f3feca7863f077f17ddf2b.css 
I, [2016-09-19T16:18:38.402201 #13608] INFO -- : Writing C:/Users/lenovo/Docume 
nts/urbanace/urbanacecode/public/assets/admin-529cbf47908b1b0636fcd9023a0f6acf3c 
1bd78078f3feca7863f077f17ddf2b.css.gz 
rake aborted! 
ExecJS::RuntimeError: undefined: SyntaxError: Unexpected token: eof (undefined) 

请咨询我错过了这里?

+0

什么不工作。 –

+0

布局,CSS和JavaScript全部未找到。万一你需要它,我用浏览器错误日志更新了我的问题。 – NomNomNom

+0

在生产模式下启动服务器之前是否预先编译了资产? – Teoulas

回答

0

打开配置/环境/ production.rb并确保下列选项被设置为true:

# Don't fallback to assets pipeline if a precompiled asset is missed 
config.assets.compile = true 

然后运行:

rake assets:precompile --trace RAILS_ENV=production 

希望这有助于!

+0

i尝试了这一点,资产得到了编译,但是当我尝试访问我的应用程序时,它抛出“我们很抱歉,但出错了。” 如果您是应用程序所有者,请查看日志以获取更多信息。还检查错误日志,此行导致错误,ActionView :: Template :: Error(undefined:SyntaxError:Unexpected token:eof(undefined)): – NomNomNom

+0

你的主机是什么?如果它是heroku你运行'heroku运行rake db:create'和'heroku运行rake db:migrate' – 2016-09-19 13:15:04

+0

@Johan对不起,对于迟到的响应,我的主机是Windows 7 64位,我试图在我的计算机上运行生产模式,如果成功,以后我会上传我的应用程序并运行在centos 6中。 – NomNomNom