Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails文件设置_Ruby On Rails_Templates_Web_Ruby On Rails 5 - Fatal编程技术网

Ruby on rails RubyonRails文件设置

Ruby on rails RubyonRails文件设置,ruby-on-rails,templates,web,ruby-on-rails-5,Ruby On Rails,Templates,Web,Ruby On Rails 5,我对应该在哪些文件夹中放置公共文件有一些疑问。 我们在根路径上找到了一个名为public的文件夹,以及app中的一些其他文件夹(我使用rails 5.0.1),让我向您展示一些听起来很奇怪的文件夹: 应用程序/资产/(图像| javascripts |样式表) 应用程序/视图/页面 在阅读了多个教程和现有的公共项目后,我看到一些人将他的web模板放在了public(包括js、css和图像)。 然而,在我的例子中,由于我也见过几次,并且发现了它的逻辑性,我将我的模板放在资产中将我的js、sas

我对应该在哪些文件夹中放置公共文件有一些疑问。
我们在根路径上找到了一个名为public的文件夹,以及app中的一些其他文件夹(我使用rails 5.0.1),让我向您展示一些听起来很奇怪的文件夹:

  • 应用程序/资产/(图像| javascripts |样式表)
  • 应用程序/视图/页面
在阅读了多个教程和现有的公共项目后,我看到一些人将他的web模板放在了public(包括js、css和图像)。
然而,在我的例子中,由于我也见过几次,并且发现了它的逻辑性,我将我的模板放在资产中将我的js、sass(在我的例子中)文件和图像分离到RoR生成器已经创建的文件夹中

另外,对于我来说,将文件放在资产中似乎是合乎逻辑的,因为我的主布局将使用框架默认API将模板文件放在资产中。下面这行代码适用于我,将加载我的app/assets/stylesheets/app.css.scss文件

<%= stylesheet_link_tag    'app', media: 'all', 'data-turbolinks-track': 'reload' %>


希望有人能解释什么是更好的方法,我是Rails的初学者,谢谢。

app/assets/

这是您放置自定义资产的地方(图像、您拥有的js/css脚本以及应用程序的自定义)

供应商/资产/

这是针对应用程序中使用的第三方库(carousel js插件等)

预编译资产

config/initializers/assets.rb
(默认情况下包括application.css和application.js)中的assets路径中,将应用程序中使用的资产(图像、js/css文件)的所有路径添加到assets中

使用预编译时的所有资产

bundle exec rails assets:precompile

这将生成public/assets目录,其中预编译路径中配置的所有资产都作为可随时维护的静态资产提供给应用程序响应。

将js、sass和图像放在资产目录中,这将它们添加到rails资产管道。确定供应商/资产应该包含我的库吗?比如基础还是引导?谢谢大家的解答!还有一个问题,我在资产/样式表中没有使用默认的application.css,我使用的是正确的app.css.scss(用于css代码中的图像url)。是坏还是坏?我不使用要求等。。我不太明白它是怎么工作的。Rails自己编译我的scss文件吗?那很好。。如果不想,则不需要使用application.css。。Rails在
gem'sass-Rails'
的帮助下将
.scss
文件预编译为CSS。。如果你没有的话,把它包起来。好的,谢谢。但他似乎可以阅读,我可以看到我的网站正在使用.css.scss。似乎很奇怪,似乎默认情况下已经安装了sass rails;)
bundle exec rails assets:precompile