我正在阅读"Rails教程:通过示例学习Rails 3.2"一书,但我在第4章末尾有一个小问题.
在本书中,您下载Blueprint css框架,将其添加到/ vendor/assets/stylesheets,然后使用以下命令在layouts/application.html.erb中引用它:
<%= stylesheet_link_tag 'blueprint/screen', :media => 'screen' %>
<%= stylesheet_link_tag 'blueprint/print', :media => 'print' %>
<!--[if lt IE 8]><%= stylesheet_link_tag 'blueprint/ie' %><![endif]-->
Run Code Online (Sandbox Code Playgroud)
这在我的本地机器上工作正常,但是当我使用它将它部署到heroku(雪松)时
$ bundle exec rake assets:precompile
$ git push heroku
Run Code Online (Sandbox Code Playgroud)
我查看网站时出错:
app[web.1]: Completed 500 Internal Server Error in 71ms
app[web.1]: ActionView::Template::Error (blueprint/screen.css isn't precompiled):
app[web.1]: 4: <%= stylesheet_link_tag 'blueprint/screen', media: 'screen' %>
app[web.1]: 5: <%= stylesheet_link_tag 'blueprint/print', media: 'print' %>
Run Code Online (Sandbox Code Playgroud)
目前,我能够使其工作的唯一方法是通过将其放入生产中来手动告知有关蓝图样式表的信息.rb
config.assets.precompile += %w( blueprint/screen.css blueprint/print.css blueprint/ie.css )
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?有没有办法rake assets:precompile自动缩小/压缩/ …
我正在做一些基本的 ajax 请求来更改页面,例如:
$(document.body).on('click', ".paging a", function (e) {
$.ajax({
type: "GET",
url: $this.attr('href'),
success: function (data) {
$("#main-content").html(data);
}
});
e.preventDefault();
return true;
});
Run Code Online (Sandbox Code Playgroud)
ajax 请求调用的 URL 返回 HTML,有时此 HTML 包含 30-40 个<img>图像。
我遇到的问题是,如果您快速连续单击两个页面,浏览器会等待加载上一个 ajax 请求的 HTML 中的所有图像,直到进行下一个 XHR 调用,此时会出现延迟。
有没有办法将 XHR 请求优先于图像?基本上,如果单击另一个页面,我希望所有当前请求停止并立即执行 XHR 请求。据我所知,发生这种情况是因为浏览器对一个域发出的异步请求数量有限制(例如 chrome 为 6),如果我将图像更改为使用子域,它可能会修复它,但我正在尝试找到一种方法来做到这一点,而不必求助于子域。
我正在尝试使用 puppeteer 获取页面的完整内容,这对于普通页面效果很好,但如果它进行重定向,window.location我想阻止该重定向并只获取原始内容:
前任。如果https://example.com/thisredirects返回
<html>
<body>
<p>Page not found - Please wait while we redirect you home...</p>
<script type="text/javascript" language="javascript">
window.location = "//example.com";
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我想获取该 html 并阻止位置重定向。如果我尝试阻止/中止setRequestInterception响应返回 null 的位置更改,并且它实际上并没有完全阻止重定向(它适用于重定向状态代码,但不适用于返回 200 然后使用 重定向的页面window.location):
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: false });
const pageUrl = "https://example.com/thisredirects";
const page = await browser.newPage();
await page.setCacheEnabled(false);
await page.setRequestInterception(true);
const requests = [];
page.on('request', async request => { …Run Code Online (Sandbox Code Playgroud)