2017-09-01 50 views
7

當我嘗試使用webpacker在我的新rails 5.1應用程序中加載頁面時,我收到此錯誤。我想webpacker也處理CSS。stylesheet_pack_tag在rails 5.1中找不到app/javascript/src/application.css gem

Started GET "/" for ::1 at 2017-09-01 12:20:23 -0400 
Processing by HomeController#welcome as HTML 
    Rendering home/welcome.html.erb within layouts/application 
    Rendered home/welcome.html.erb within layouts/application (0.4ms) 
Completed 500 Internal Server Error in 28ms 



ActionView::Template::Error (Webpacker can't find application.css in /Users/myusername/Documents/testing-ground/myapp/public/packs/manifest.json. Possible causes: 
1. You want to set wepbacker.yml value of compile to true for your environment 
    unless you are using the `webpack -w` or the webpack-dev-server. 
2. Webpack has not yet re-run to reflect updates. 
3. You have misconfigured Webpacker's config/webpacker.yml file. 
4. Your Webpack configuration is not creating a manifest. 
Your manifest contains: 
{ 
    "application.js": "/packs/application-1ba6db9cf5c0fb48c785.js", 
    "hello_react.js": "/packs/hello_react-812cbb4d606734bec7a9.js" 
} 
): 
    7:  <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> 
    8:  <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> 
    9:  <%= javascript_pack_tag 'application' %> 
    10: <%= stylesheet_pack_tag 'application' %> 
    11: </head> 
    12: 
    13: <body> 

app/views/layouts/application.html.erb:10:in `_app_views_layouts_application_html_erb__1178607493020013329_70339213085820' 

我運行的是./bin/webpack-dev-server沿着rails server。我創建使用的應用程序:

rails new myapp --webpack bundle bundle exec rails webpacker:install:react

我有一個CSS文件app/javascript/src/application.css。 (寫這讓我感覺不對,把css放在javascript目錄裏似乎不太合適。)

我剛剛定義了單根路由root to: 'home#welcome'

這裏是app/views/layouts/application.html.erb

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Myapp</title> 
    <%= csrf_meta_tags %> 

    <%= javascript_pack_tag 'application' %> 
    <%= stylesheet_pack_tag 'application' %> 
    </head> 

    <body> 
    <%= yield %> 
    </body> 
</html> 

這是我config/webpacker.yml(我曾經嘗試也設置編譯爲false發展。

# Note: You must restart bin/webpack-dev-server for changes to take effect 

default: &default 
    source_path: app/javascript 
    source_entry_path: packs 
    public_output_path: packs 
    cache_path: tmp/cache/webpacker 

    # Additional paths webpack should lookup modules 
    # ['app/assets', 'engine/foo/app/assets'] 
    resolved_paths: [] 

    # Reload manifest.json on all requests so we reload latest compiled packs 
    cache_manifest: false 

    extensions: 
    - .coffee 
    - .erb 
    - .js 
    - .jsx 
    - .ts 
    - .vue 
    - .sass 
    - .scss 
    - .css 
    - .png 
    - .svg 
    - .gif 
    - .jpeg 
    - .jpg 

development: 
    <<: *default 
    compile: true 

    dev_server: 
    host: localhost 
    port: 3035 
    hmr: false 
    https: false 

test: 
    <<: *default 
    compile: true 

    # Compile test packs to a separate directory 
    public_output_path: packs-test 

production: 
    <<: *default 

    # Production demands on precompilation of packs prior to booting for performance. 
    compile: false 

    # Cache manifest.json for performance 
    cache_manifest: true 

我不想加太多的細節上前線因爲他們更分心,然後有幫助。請問什麼,我會加我的問題。謝謝!

回答

2

在你的application.js中:

import "path to application.css" 
相關問題