在我的rails应用程序中,我尝试将CSS加载到我的视图中:
<link src="assets/stylesheets/myStyleSheet.css" type="text/css" rel="stylesheet">
它有效。
但是当我尝试加载如下的JavaScript文件时,
<script src="assets/javascripts/libs/modernizr-2.6.2.min.js" type="text/javascript"></script>
我收到404 error
(某些图片也出现相同的错误)
我的所有文件都在正确的位置,所以有人有想法解决它吗?
感谢。
答案 0 :(得分:1)
您最好使用asset pipeline将js和css文件包含到您的应用程序中。
对于当前示例,请将其放入app / assets / javascripts / application.js
//= require ./libs/modernizr-2.6.2
在你的app / assets / stylesheets / application.css.scss
中/*
*= require ./myStyleSheet
*/
并进入.html.erb文件(例如application.html.erb,<head>
部分)
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>
答案 1 :(得分:0)
在src开头的资源之前加上斜杠'/'。并且css文件应该包含链接href而不是src虽然它可以工作但不是一个好习惯。
<link href="/assets/css_file_path.css" media="screen" rel="stylesheet" />
<script src="/assets/path_to_js_file.js"></script>
答案 2 :(得分:0)
请在以下文件中添加资产管道的自定义路径:
# config/application.rb
config.assets.paths << Rails.root.join("app", "assets", "javascripts", "libs")
然后,在您的JavaScript清单文件(主要是application.js)中,需要js文件才能在执行pre-compilation
时接受它:
//= require modernizr-2.6.2.min
在CSS清单文件(主要是application.css.sass)中,添加以下行:
/*
*= require myStyleSheet
*/
如果要包含任何单独的外部JavaScript文件,可以将它们添加到config/application.rb
中的预编译数组中:
config.assets.precompile += ['custom.min.js']
如果要查看通过资产路径加载的资产,可以在控制台中使用:
Rails.application.config.assets.paths
希望这可能是最好的选择。 :)